fix(ng:options): select correct element when '?'-option was previously selected

Closes #599
This commit is contained in:
TEHEK Firefox 2011-10-12 23:42:21 +00:00 committed by Igor Minar
parent 74379df6c4
commit ee6af9a978
2 changed files with 16 additions and 3 deletions

View file

@ -384,7 +384,7 @@ angularWidget('select', function(element){
if (existingOption.id !== option.id) {
lastElement.val(existingOption.id = option.id);
}
if (existingOption.selected !== option.selected) {
if (existingOption.element.selected !== option.selected) {
lastElement.prop('selected', (existingOption.selected = option.selected));
}
} else {

View file

@ -428,6 +428,21 @@ describe('select', function() {
expect(select.val()).toEqual('0');
expect(select.find('option').length).toEqual(1);
});
it('should select correct input if previously selected option was "?"', function() {
createSingleSelect();
scope.values = [{name:'A'},{name:'B'}];
scope.selected = {};
scope.$digest();
expect(select.find('option').length).toEqual(3);
expect(select.val()).toEqual('?');
expect(select.find('option').eq(0).val()).toEqual('?');
browserTrigger(select.find('option').eq(1));
expect(select.val()).toEqual('0');
expect(select.find('option').eq(0).prop('selected')).toBeTruthy();
expect(select.find('option').length).toEqual(2);
});
});
describe('on change', function() {
@ -504,7 +519,5 @@ describe('select', function() {
expect(scope.selected).toEqual([scope.values[0]]);
});
});
});
});