[英]AngularJs: $watch not triggering
我知道这个问题已经被问过很多次,但是所公开的任何解决方案似乎都对我有用。 我有这个HTML
<body ng-controller="mainCtrl">
<h4>{{size}}</h4>
<input type="range" ng-model="size" min="1" max="100" />
<div font-scale="{{size}}">I'm some text</div>
</body>
输入有效,值更改,并且实际上已正确绑定到{{size}}。
然后我有我的指令:
MyApp.controller('mainCtrl', function($scope) {
$scope.size = 30;
});
MyApp.directive('fontScale', function(){
return {
link: function(scope, el, attrs){
scope.$watch(attrs['fontScale'], function(newVal){
console.log('testing');
el.css('font-size', newVal+'px');
});
}
}
});
当页面加载时,“测试”仅在控制台中显示一次,但是通过滑块更改值时,不会显示一次。 但是它确实正确绑定了{{size}}的值。
添加“ TRUE”作为第三个参数是行不通的,而且奇怪的是,我正在学习的教程使用相同的代码!
我想念什么?
如果size属性在指令范围内可用(如注释中所述)。 然后,以下应该工作:
scope.$watch('size', function(newVal) {
el.css('font-size', newVal+'px');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.