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