我的范围内有一个对象数组,我想观察每个对象的所有值。
这是我的代码:
function TodoCtrl($scope) {
$scope.columns = [
{ field:'title', displayName: 'TITLE'},
{ field: 'content', displayName: 'CONTENT' }
];
$scope.$watch('columns', function(newVal) {
alert('columns changed');
});
}
但是,当我修改值时,例如,我更改TITLE
为TITLE2
,则alert('columns changed')
永不弹出。
如何深入观察数组中的对象?
有一个现场演示:http :
//jsfiddle.net/SYx9b/
您可以将的第3个参数设置$watch
为true
:
$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