gpt4 book ai didi

AngularJs 观察窗口变量

转载 作者:行者123 更新时间:2023-12-04 11:17:57 25 4
gpt4 key购买 nike

在 angularJs 中可以观察全局变量吗?

我从遗留代码设置了一个 window.test 变量,然后我需要观察该变量以了解它是否存在。

我试过类似的东西

$window.$watch("test" , function(n,o){
//some code here...
}

最佳答案

有些。如果包含 Angular $window service,则可以(如文档中所述,这比直接访问 window 更安全):

app.controller('myCtrl', function ($scope,$window) {...}

然后使用 watch 函数作为 $watch 的第一个参数像这样:
$scope.$watch(
function () {
return $window.test
}, function(n,o){
console.log("changed ",n);
}
);

demo fiddle

但请注意 $watch在某些事情触发 Angular 执行 $digest 之前不会执行。一种可能的方法是将遗留代码包装在 $scope.$apply 中。或触发 $digest一旦遗留代码执行完毕。这里有一些不错的 documentation on this .

基本上,每当在 angular 之外发生更改时(例如,这是 jQuery 导致更改时的常见问题),必须告诉 Angular 去查看是否有更改。这是 Angular 保持合理性能的一种方式。

关于AngularJs 观察窗口变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667012/

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