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

AngularJS“;“cron jobs”对每个$digest运行操作,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我想在每个$digest周期执行一些函数 $scope的文档如下: 如果希望在调用$digest时收到通知,可以 在没有侦听器的情况下注册watchExpression函数。(自 当 如果检测到更改,请准备好多次调用您的侦听器。) 那么这是否意味着可以通过以下方式实现: $rootScope.$watch(function () { // Cron job }); 我不确定是否每个$digest循环都会命中$rootScope,或者它甚至是从$rootScope发出的。我只知道只有一个$d

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

$scope
的文档如下:

如果希望在调用$digest时收到通知,可以 在没有侦听器的情况下注册watchExpression函数。(自 当 如果检测到更改,请准备好多次调用您的侦听器。)

那么这是否意味着可以通过以下方式实现:

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

我不确定是否每个
$digest
循环都会命中
$rootScope
,或者它甚至是从
$rootScope
发出的。我只知道只有一个
$digest
循环,每次$watch检测到变化时都会发生循环。

Q:这是否意味着可以通过这种方式完成

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

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

摘要不像cron作业,它不会每x秒自动运行一次。

当您调用$scope.$apply()或发生类似ng click或$http.get之类的事件时,它会运行。

在此处检查我的答案:@ilanbrumer看到了它,还有一个也向您提供了它!谢谢你的及时答复。你也让我很好奇-消化本地作用域和相反的作用域有什么区别?当你确定只有$scope或它的子作用域发生了变化时,你就调用$scope.$digest。这限制了与$scope相比的脏检查。$apply脏检查所有$scope,另外$eval()检查参数。