diff --git a/src/ng/directive/ngOptions.js b/src/ng/directive/ngOptions.js index e82d5e49813a..56e1f7d130d4 100644 --- a/src/ng/directive/ngOptions.js +++ b/src/ng/directive/ngOptions.js @@ -428,6 +428,9 @@ var ngOptionsDirective = ['$compile', '$document', '$parse', function($compile, } } + // The empty option will be compiled and rendered before we first generate the options + selectElement.empty(); + var providedEmptyOption = !!selectCtrl.emptyOption; var unknownOption = jqLite(optionTemplate.cloneNode(false)); @@ -449,6 +452,9 @@ var ngOptionsDirective = ['$compile', '$document', '$parse', function($compile, if (!multiple) { selectCtrl.writeValue = function writeNgOptionsValue(value) { + if (!options) + return; + var selectedOption = options.selectValueMap[selectElement.val()]; var option = options.getOptionFromViewValue(value); @@ -508,6 +514,9 @@ var ngOptionsDirective = ['$compile', '$document', '$parse', function($compile, } else { selectCtrl.writeValue = function writeNgOptionsMultiple(values) { + if (!options) + return; + // Only set `