我正在尝试从我的链接函数内部观察我的模型值。
scope.$watch(attrs.ngModel, function() {
console.log("Changed");
});
当我在 Controller 中更改模型值时,不会触发 $watch 函数。
$scope.myModel = "ACT";
$timeout(function() {
$scope.myModel = "TOTALS";
}, 2000);
fiddle :http://jsfiddle.net/dkrotts/BtrZH/4/
我在这里错过了什么?
最佳答案
您需要观察一个返回您正在观察的 $modelValue 的函数。
以下代码显示了一个基本示例:
app.directive('myDirective', function (){
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
scope.$watch(function () {
return ngModel.$modelValue;
}, function(newValue) {
console.log(newValue);
});
}
};
});
Here's a plunker相同的想法付诸实践。
关于javascript - $watch ngModel 从内部指令使用隔离范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693052/