我试图在使用 ngOptions 的选择字段上使用 AngularJS 在 ngModel 指令的链接回调期间运行一些代码。
module.directive("ngModel",function(){
console.log('ng-model called');
return {
restrict: 'A',
priority: -1, // give it lower priority than built-in ng-model
link: function(scope, element, attr) {
console.log('watching');
scope.$watch(attr.ngModel,function(value){
if (value){
console.log("changing");
}
});
}
}
});
看到这个演示问题的小提琴:http: //jsfiddle.net/d3r3zwLj/3/
第一个选择字段使用 ng-options 填充,而第二个选择字段的选项明确写在 html 中。如果您打开控制台,您可以看到您只在更改第二个选择字段时看到“更改”消息。改变第一个没有任何作用。
您还会立即注意到,您只看到“ng-model called”和“watching”一次,即使有两个字段带有 ng-model。
我希望 ngModel 指令适用于两个选择字段。ng-options 做了什么阻止 ngModel 工作?
谢谢!