[英]$watch in angularJS is not working as expected
在我的控制器中,我想在变量值更改时收到通知。 我的要求是何时变量的值将更改,函数将被调用。 所以我在用$watch
。 我的代码如下。
var Canvas = angular.module('canvas');
Canvas.controller("excelOperation",function($scope,Data,SharedData,$http){
$scope.tbody=$scope.$parent.shared.previews;
$scope.$watch('$parent.shared.previews',function(newVal,oldVal){
console.log("WORKING");
})
setInterval(function(){
console.log($scope.$parent.shared.previews);
},1000)
/**
* Populate table function to populate excel table
*/
$scope.populateTable=function()
{
}
})
angular.bootstrap(document.getElementById("page"), ['canvas']);
但是问题是,只有当我刷新页面时, $watch
才起作用。 尽管setInterval
正在打印,但变量$watch
的更改值并未被调用。
注意$scope.$parent.shared.previews
是一个对象
我究竟做错了什么? 我告诉我要实现的目标,这是个好方法吗?
您正在监视对象的属性更改,因此需要深入监视。 其次,要观察父作用域变量,也许您最好像这样$scope.$parent.$watch(...)
编写。
var deepWatch = true;
$scope.$watch('$parent.shared.previews', function(newVal, oldVal) {
console.log("WORKING");
}, deepWatch);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.