【发布时间】:2017-07-14 22:14:24
【问题描述】:
在我的控制器中,我希望在变量值更改时收到通知。我的要求是当一个变量的值会改变一个函数将被调用。所以我使用$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 是一个对象
我做错了什么? 我告诉要实现什么,这是一个好方法吗?
【问题讨论】:
-
您应该使用 $parent.shared.previews 而不是 $scope.$parent.shared.previews。在 watch 和 setinterval 两个地方
-
还是不行:(
-
你能把你的完整代码发过来吗
-
$watch 正在监控范围内的值变化。所以一定要改变价值。
-
添加了更多代码。如果您需要更多代码,我可以为您提供:)
标签: javascript angularjs watch ng-controller