当前位置: 首页 > 知识库问答 >
问题:

如何在AngularJS中深度观察一个数组?

叶德本
2023-03-14
function TodoCtrl($scope) {
  $scope.columns = [
      { field:'title', displayName: 'TITLE'},
      { field: 'content', displayName: 'CONTENT' }
  ];
   $scope.$watch('columns', function(newVal) {
       alert('columns changed');
   });
}

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

有一个现场演示:http://jsfidle.net/syx9b/

共有1个答案

马凡
2023-03-14

您可以将$watch的第三个参数设置为true:

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

请参阅https://docs.angularjs.org/api/ng/type/$rootscope.scope#$watch

由于Angular 1.1.x,您还可以使用$watchcollection来观看shallow watch(只是集合的“第一级”)。

$scope.$watchCollection('data', function (newVal, oldVal) { /*...*/ });
 类似资料:
  • 问题内容: 我的范围内有一个对象数组,我想观察每个对象的所有值。 这是我的代码: 但是,当我修改值时,例如,我更改为,则永不弹出。 如何深入观察数组中的对象? 有一个现场演示:http : //jsfiddle.net/SYx9b/ 问题答案: 您可以将的第3个参数设置为: 参见https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$wat

  • 问题内容: 一个人如何监视/触发一条路线上的事件? 问题答案: 以下事件也可用(它们的回调函数采用不同的参数): $ routeChangeSuccess $ routeChangeError $ routeUpdate-如果将reloadOnSearch属性设置为false

  • 我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块

  • 对于LiveData和MVVM架构,我完全是个新手。我想知道如何观察一个实时数据 我通过以下方式从我的房间数据库中获取实时数据: 我希望ViewModel中的另一个变量,,在列表返回空(null)时进行更新。这将用于从Visible更新片段中的ImageView。去看电视了。看得见的 我如何检查如果是空的同步? 我四处阅读,看到一些人说使用,但是架构指南明确建议不要使用ViewModel中的任何观

  • 问题内容: 这似乎是一个愚蠢的问题,但是我需要知道如何监视页面的整个DOM并在页面发生任何变化时重新对其进行编译。本质上,这是AngularJS在默认情况下通过使用数据绑定来执行的操作,但是我需要在DOM中的任何内容发生变化时(不仅是绑定)发生这种情况。原因是因为我有一个完全用HTML,Javascript和PHP构建的应用程序。它是一个单页应用程序,具有一个主页,并将PHP注入该页面内的DIV包

  • 问题内容: 我知道我可以跑步: 但是我想不出一种方法来监视应用程序中的更改。 问题答案: 在文档中: https //github.com/angular-ui/ui-router/wiki#state-change- events