我正在尝试编写指令,为带有 ng-options 的 select 对象添加一个新值。
但是当我将此指令添加到select 时,项目会消失。
小例子:
html:
<div ng:app="editor" ng:controller="BaseController">
<select ng-model='m' ng-options='i.Id as i.Val for i in model.items' add-new-val='model.items'></select>
<select ng-model='m' ng-options='i.Id as i.Val for i in model.items'></select>
</div>
JavaScript:
var module = angular.module('editor', []);
function BaseController($scope){
$scope.model = {
items: [{Id:1, Val:"_1"}]
}
$scope.m = 1;
}
module.directive('addNewVal',function(){
return {
scope:{
items: '=addNewVal'
},
controller: function($scope){
$scope.items.push({Id: 3, Val: "Have a nice day"});
}
}
})
关于 jsfidle .
怎么了?
最佳答案
作为ranru建议,你可以重写你的指令,这样它就不会清除 select 指令的范围。像这样:
module.directive('addNewVal',function(){
return {
controller: function($attrs, $scope){
var data = $scope.$eval($attrs.addNewVal);
data.push({Id: 3, Val: "Have a nice day"});
}
}
})
关于javascript - select from 指令的 Angular 动态更改选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704423/