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);