$watch 不触发带有美元 ($) 的变量
$watch not firing on variables with a dollar ($)
我有一个对象的手表。当对象的 属性 发生变化时,手表会触发,除非 属性 名称以美元 ($).
开头
考虑这段代码:
$scope.data = {};
$scope.$watch('data', function (newValue, oldValue) {
console.log('fired', newValue);
}, true);
和html:
<div>
this will fire the event
<input type="text" ng-model="data.x" />
</div>
<div>
this won't
<input type="text" ng-model="data.$" />
</div>
你可以在这个 fiddle 中亲眼看到:
https://jsfiddle.net/gtrwzsn1/179/
这对我来说非常重要,因为我必须使用带 $ 的 属性 名称进行过滤。
AngularJs 具有“$watchCollection”函数作为观察集合(即数组或对象)变化的一种方式。
$scope.$watchCollection('data', function (newValue, oldValue) {
console.log('fired', newValue);
});
请尝试上面的代码片段,因为你想观看一个对象。希望这有帮助。
我有一个对象的手表。当对象的 属性 发生变化时,手表会触发,除非 属性 名称以美元 ($).
开头考虑这段代码:
$scope.data = {};
$scope.$watch('data', function (newValue, oldValue) {
console.log('fired', newValue);
}, true);
和html:
<div>
this will fire the event
<input type="text" ng-model="data.x" />
</div>
<div>
this won't
<input type="text" ng-model="data.$" />
</div>
你可以在这个 fiddle 中亲眼看到: https://jsfiddle.net/gtrwzsn1/179/
这对我来说非常重要,因为我必须使用带 $ 的 属性 名称进行过滤。
AngularJs 具有“$watchCollection”函数作为观察集合(即数组或对象)变化的一种方式。
$scope.$watchCollection('data', function (newValue, oldValue) {
console.log('fired', newValue);
});
请尝试上面的代码片段,因为你想观看一个对象。希望这有帮助。