gpt4 book ai didi

javascript - AngularJs:$watch未触发

转载 作者:行者123 更新时间:2023-12-02 15:13:03 26 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但是所公开的任何解决方案似乎都适合我。我有这个 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>

输入有效,值发生变化,并且它实际上正确绑定(bind)到 {{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');
});
}
}
});

当页面加载时,“测试”仅在控制台中显示一次,但是当通过 slider 更改值时,它不会显示。但它确实正确绑定(bind)了 {{size}} 的值。

添加“TRUE”作为第三个参数不起作用,奇怪的是,我正在学习的教程使用相同的代码!

我错过了什么?

最佳答案

如果 size 属性在您的指令范围内可用(如您的评论中所述)。那么以下应该可以工作:

scope.$watch('size', function(newVal) {
el.css('font-size', newVal+'px');
}

关于javascript - AngularJs:$watch未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34681002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com