当前位置: 首页 > 面试题库 >

如何在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');
   });
}

但是,当我修改值时,例如,我更改TITLETITLE2,则alert('columns changed')永不弹出。

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

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


问题答案:

您可以将的第3个参数设置$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



 类似资料:
  • 如何深入观察数组中的对象? 有一个现场演示:http://jsfidle.net/syx9b/

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

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

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

  • 此外,为什么Viewmodel不能观察到它自己的LiveData的变化?

  • 我来自同步编程背景,我很难理解可观察性。 这是我的服务/提供商的摘录(离子2项目) 我将从订阅它。关于这一点,我有几个问题。 > 即使我没有声明,上面的代码是否返回一个可观察/观察者? 响应是JSON。如何检查/处理JSON并执行一些操作,如 那就做吧 我认为应该在提供者类中完成。只是一个典型的提示/例子将是真棒。 当请求到达subscribe方法时,它是否真的发生了? 创建和返回Angular