Angularjs添加带有value =“?”的选项。当ng-model为空字符串时,使用预定义选项value =“”进行选择。如何将空字符串值映射到选项value =“”并避免选项value =“?”?
我在angularjs 1.4.9及更低版本上没有看到此问题。如果范围值为null,而不是空字符串,它也可以正常工作。
控制器和指令
.controller('Ctrl', ['$scope', function($scope) {
$scope.value = '';
}])
.directive('simpleDropdown', function() {
return {
restrict: 'E',
scope: {
unselectedText: '@'
},
template: '<select ng-options="x.key as x.description for x in lookupModel">' +
'<option value="" selected="selected">{{ unselectedText }}</option>' +
'</select>',
replace: true,
compile: function compile() {
return {
post: function postLink(scope) {
scope.lookupModel = [{
'key': 'Call',
'description': 'Call someone'
}, {
'key': 'Email',
'description': 'Email to someone'
}];
}
};
}
};
})
html
<simple-dropdown ng-model="value" unselected-text="Please select.."></simple-dropdown>
我希望$ scope.value =''映射到选项value =“”,请选择,但实际行为是angularjs添加了空的选项value =“?”选择。