我想从我在input
元素中作为属性放置的指令中查看模型:
<input id="mymodel_headline" name="mymodel[headline]"
ng-model="mymodel.headline" sps-watch="true" type="text">
如果我正在阅读文档,我应该能够通过链接函数的attrs
参数或需要ngModel
来获取值。但是,这些方法都不起作用:
app.directive('spsWatch', function() {
return {
require: "ngModel",
link: function(scope, element, attrs, ngModel) {
console.log("directive called");
console.log(attrs.ngModel);
scope.$watch(scope[attrs.ngModel], function(result) {
console.log("watching via attribute");
console.log(result);
});
scope.$watch(ngModel, function(result) {
console.log("watching via ngModel");
console.log(result)
});
}
};
});
当首次创建指令时,它们似乎只运行一次。
答案 0 :(得分:1)
您可以通过ngModel.$viewValue
检索模型的值。从$watch
表达式中的匿名函数返回该函数,模型中的更改将触发您的$watch
函数:
scope.$watch(function () {
return ngModel.$viewValue;
}, function(result) {
console.log("watching via ngModel");
console.log(result)
});