我想在每个$digest
周期执行一些函数。
$scope
的文档内容为:
如果您想在每次调用$ digest时收到通知,您可以 注册一个没有监听器的watchExpression函数。 (以来 当a表示每个$ digest周期时,watchExpression可以多次执行 检测到更改,准备好多次调用听众。)
这是否意味着可以通过这种方式实现:
$rootScope.$watch(function () {
// Cron job
});
我不确定每个$digest
周期是否会触及$rootScope
,或者是否从$rootScope
发出。我只知道只有一个$digest
循环,每次$ watch检测到更改时都会出现这种情况。
答案 0 :(得分:2)
答:是,尽管某些指令/服务可能会选择仅消化其本地范围以提高性能。
这就是说建议在摘要循环中以尽可能少的代码执行。
摘要不像cron作业,它不会每隔x秒自动运行 当你调用$ scope。$ apply()或者发生像ng-click或$ http.get这样的事件时,它会运行。