AngularJS“cron jobs” - 对每个$ digest运行操作

时间:2014-01-22 15:24:05

标签: angularjs angularjs-scope

我想在每个$digest周期执行一些函数。

$scope的文档内容为:

  

如果您想在每次调用$ digest时收到通知,您可以   注册一个没有监听器的watchExpression函数。 (以来   当a表示每个$ digest周期时,watchExpression可以多次执行   检测到更改,准备好多次调用听众。)

这是否意味着可以通过这种方式实现:

$rootScope.$watch(function () {
  // Cron job
});

我不确定每个$digest周期是否会触及$rootScope,或者是否从$rootScope发出。我只知道只有一个$digest循环,每次$ watch检测到更改时都会出现这种情况。

1 个答案:

答案 0 :(得分:2)

问:那是否意味着可以通过这种方式实现?

答:,尽管某些指令/服务可能会选择仅消化其本地范围以提高性能。

这就是说建议在摘要循环中以尽可能少的代码执行。

摘要不像cron作业,它不会每隔x秒自动运行 当你调用$ scope。$ apply()或者发生像ng-click或$ http.get这样的事件时,它会运行。