小编典典

如何深入观察angularjs中的数组?

all

我的范围中有一个对象数组,我想查看每个对象的所有值。

这是我的代码:

function TodoCtrl($scope) {
  $scope.columns = [
      { field:'title', displayName: 'TITLE'},
      { field: 'content', displayName: 'CONTENT' }
  ];
   $scope.$watch('columns', function(newVal) {
       alert('columns changed');
   });
}

但是当我修改这些值时,例如我更改TITLETITLE2alert('columns changed')从未弹出。

如何深入观察数组中的对象?

有一个现场演示:http: //jsfiddle.net/SYx9b/


阅读 101

收藏
2022-04-12

共1个答案

小编典典

您可以将第三个参数设置$watchtrue

$scope.$watch('data', function (newVal, oldVal) { /*...*/ }, true);

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch

从 Angular 1.1.x 开始,您还可以使用 $watchCollection 来观察浅表(只是“第一级”)集合。

$scope.$watchCollection('data', function (newVal, oldVal) { /*...*/ });

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watchCollection

2022-04-12