下面有一个数组,它在其中存储数据和样式的混合。
用户可以添加,删除或重新排序其元素,以及修改元素的值,因此我需要使用$scope.$watch
进行观察,以便在修改后执行某些操作。
但是,如果只是其样式发生变化,我也不想收到通知。是否有更好的做法来安排我的数据,只有在价值发生变化时才收到通知,谢谢。
[{
value: 1,
selected: true,
width: '100px'
}, {
value: 2,
width: '150px'
}, {
value: 3,
width: '100px'
}];
答案 0 :(得分:1)
这是仅在样式更改时才能观看的示例。
http://plnkr.co/edit/GAG40qBkD4eq3GbKBMhc?p=preview
$scope.$watch(function($scope) {
return $scope.data.
map(function(data) {
return data.width;
});
}, function(newValue) {
console.log('Modified width' + newValue);
}, true);
我认为你必须在必要的属性上创建手表。
答案 1 :(得分:0)
使用$watch
作为第三个参数调用true
:
$scope.$watch('data', function(newValue, oldValue) {
console.log(newValue, oldValue);
},true);