Angularjs $scope.$watch在数组中对象的某些部分
下面是一个数组,其中存储数据和样式的混合 用户可以添加、删除或重新排序其元素,以及修改元素的值,因此我需要使用Angularjs $scope.$watch在数组中对象的某些部分,angularjs,Angularjs,下面是一个数组,其中存储数据和样式的混合 用户可以添加、删除或重新排序其元素,以及修改元素的值,因此我需要使用$scope.$watch对其进行监视,以便在其被修改时执行某些操作 然而,我不想得到通知,如果只是它的风格改变。是否有更好的做法来安排我的数据,只有在值发生变化时才能得到通知,谢谢 使用true作为第三个参数调用$watch: $scope.$watch('data', function(newValue, oldValue) { console.log(newValue,
$scope.$watch
对其进行监视,以便在其被修改时执行某些操作
然而,我不想得到通知,如果只是它的风格改变。是否有更好的做法来安排我的数据,只有在值发生变化时才能得到通知,谢谢
使用
true
作为第三个参数调用$watch
:
$scope.$watch('data', function(newValue, oldValue) {
console.log(newValue, oldValue);
},true);
这是一个仅在样式更改时才可查看的示例 我认为,同样地,您必须根据需要的属性创建watch 资料来源:
谢谢,但在这种情况下,更改
样式也会调用watcher。更改样式时,比较新值[1]。宽度和旧值[1]。宽度。如果不相等,则不做任何事情。嗯,但这不能保证其他人没有更改。只需确认几件事:(1)您希望收到更改通知的唯一属性是value
?(2) 观察者是否也应该忽略数据顺序的任何混乱?(3) watcher绝对比ng更改更可取,等等?@JcT(1)可能有一些值我需要得到通知(2)数组的顺序不应被忽略(3)它可能不是来自
,因此我认为ng更改不适用。谢谢……谢谢,我想这就是我需要的,我会试试这个
$scope.$watch('data', function(newValue, oldValue) {
console.log(newValue, oldValue);
},true);
$scope.$watch(function($scope) {
return $scope.data.
map(function(data) {
return data.width;
});
}, function(newValue) {
console.log('Modified width' + newValue);
}, true);