什么时候应用$ scope.apply和什么是$$阶段?

时间:2015-04-21 09:35:27

标签: angularjs angularjs-scope apply

我正在为keydown编写自定义事件指令。

Error: $apply already in progress

可能与以下实施相似

$scope.safeApply = function(fn) {
  var phase = this.$root.$$phase;
  if(phase == '$apply' || phase == '$digest')
    this.$eval(fn);
  else<br>
    this.$apply(fn);
};

1 个答案:

答案 0 :(得分:0)

即使使用&#34; safe&#34;您也应该谨慎地手动拨打$apply$digest。方法

如果您希望应用更改,请尝试使用$timeout。这将自动延迟执行,直到下一个$ digest周期,因此永远不会导致$apply already in progress错误。