在templateUrl
中有以下模板:
<input name="foo" ng-model="test">
指令:
app
.directive('bar', function() {
return {
link: function link(scope, element, attrs, ctrl) {
scope.$watch(scope.test, function(newVal) {
console.log(val);
});
},
restrict: 'E',
templateUrl: 'templates/foo.html'
};
});
我可以在指令中双向绑定它,所以我scope.$watch
输入变量吗?
我尝试使用ng-bind
和ng-model
,但我无法在我的指令的scope
中访问该变量。
修改 添加了指令代码。
答案 0 :(得分:1)
变化:
scope.$watch(scope.test, ...
到
scope.$watch('test', ...
它应该有效。 $watch
的第一个参数是(所谓的) watchExpression 。它将根据相关范围进行评估。使用字符串时,您基本上可以使用您在视图/模板中使用的所有内容。
请注意,如果您开始使用isolated scopes,这将再次中断。