在angularJs中可以观察全局变量吗?
我从遗留代码中设置了一个window.test变量,然后我需要观察该变量以了解它是否存在.
我尝试过类似的东西
$window.$watch("test" , function(n,o){
//some code here...
}
Run Code Online (Sandbox Code Playgroud)
Kay*_*ave 22
有些.如果您包含Angular $window服务(如文档中所述,比window直接访问更安全),您可以:
app.controller('myCtrl', function ($scope,$window) {...}
Run Code Online (Sandbox Code Playgroud)
然后使用watch函数作为你$watch喜欢的第一个参数:
$scope.$watch(
function () {
return $window.test
}, function(n,o){
console.log("changed ",n);
}
);
Run Code Online (Sandbox Code Playgroud)
但请注意,只有在$watch触发Angular执行$ digest之后才会执行.一种可能的方法是将遗留代码包装在遗留代码中,$scope.$apply或者$digest在遗留代码被激活后触发.这里有一些很好的文档.
基本上每当角度变化发生时(例如当jQuery导致变化时这是一个常见问题),就必须告诉Angular看看是否有变化.这是Angular保持合理性能的一种方式.
| 归档时间: |
|
| 查看次数: |
15043 次 |
| 最近记录: |