我正在构建一个带有选择列表的指令,以便动态添加元素。
以下不起作用:我在我的指令的ng-model-options绑定中使用的数组模型中添加了一个元素。 该元素很好地添加到列表但未被选中。相反,我一直得到空行。我无法找到将ng-model设置为新添加元素的方法。
我已经尝试了一个范围。$ watch在指令中的项目列表中,但奇怪的是当项目列表增加一个新元素时不会触发任何内容。而且我不明白为什么:如果列表正在更新,那么scope.items应该触发范围。$ watch ...
scope.$watch('items', function(){
scope.ngModel = scope.items[0];
});
我已经做了一个插图来说明这一点:plunker
感谢您的帮助!
答案 0 :(得分:1)
这将有效(documentation)
scope.$watch('items', function(){
scope.ngModel = scope.items[0];
}, true); // Add third parameter true, this will make sure you check if the list
// has changed and not only if a new list was added
// Without the third parameter:
var list = [];
list.push('test'); // won't call watch
var list = ['test'];
list = ['new array']; //will call watch