@@ -449,12 +449,12 @@ var ngOptionsDirective = ['$compile', '$document', '$parse', function($compile,
449
449
if ( ! multiple ) {
450
450
451
451
selectCtrl . writeValue = function writeNgOptionsValue ( value ) {
452
- var selectedOption = options . selectValueMap [ selectElement . val ( ) ] ;
452
+ var selectedOption = selectElement [ 0 ] . options [ selectElement [ 0 ] . selectedIndex ] ;
453
453
var option = options . getOptionFromViewValue ( value ) ;
454
454
455
455
// Make sure to remove the selected attribute from the previously selected option
456
456
// Otherwise, screen readers might get confused
457
- if ( selectedOption ) selectedOption . element . removeAttribute ( 'selected' ) ;
457
+ if ( selectedOption ) selectedOption . removeAttribute ( 'selected' ) ;
458
458
459
459
if ( option ) {
460
460
// Don't update the option when it is already selected.
@@ -464,23 +464,14 @@ var ngOptionsDirective = ['$compile', '$document', '$parse', function($compile,
464
464
465
465
if ( selectElement [ 0 ] . value !== option . selectValue ) {
466
466
selectCtrl . removeUnknownOption ( ) ;
467
- selectCtrl . unselectEmptyOption ( ) ;
468
467
469
468
selectElement [ 0 ] . value = option . selectValue ;
470
469
option . element . selected = true ;
471
470
}
472
471
473
472
option . element . setAttribute ( 'selected' , 'selected' ) ;
474
473
} else {
475
-
476
- if ( value == null && providedEmptyOption ) {
477
- selectCtrl . removeUnknownOption ( ) ;
478
- selectCtrl . selectEmptyOption ( ) ;
479
- } else if ( selectCtrl . unknownOption . parent ( ) . length ) {
480
- selectCtrl . updateUnknownOption ( value ) ;
481
- } else {
482
- selectCtrl . renderUnknownOption ( value ) ;
483
- }
474
+ selectCtrl . selectUnknownOrEmptyOption ( value ) ;
484
475
}
485
476
} ;
486
477
0 commit comments