gpt4 book ai didi

javascript - angularJS 中的 $watch 未按预期工作

转载 作者:行者123 更新时间:2023-12-03 04:55:48 24 4
gpt4 key购买 nike

在我的 Controller 中,我希望在变量值更改时收到通知。我的要求是当变量的值发生变化时将调用函数。所以我正在使用 $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);

关于javascript - angularJS 中的 $watch 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com