考虑这段代码:
$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>
你可以在这个小提琴中看到它: https://jsfiddle.net/gtrwzsn1/179/
这对我来说非常重要,因为我必须使用带有$的属性名称来进行过滤。
答案 0 :(得分:2)
AngularJs具有“$ watchCollection”功能,作为观察集合(即数组或对象)变化的手段。
$scope.$watchCollection('data', function (newValue, oldValue) {
console.log('fired', newValue);
});
请在上面的代码段中尝试观看对象。希望这会有所帮助。