angualr 之 $$phase
angualr 之 $$phase
bosscheng 发表于2年前
angualr 之 $$phase
  • 发表于 2年前
  • 阅读 1110
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 正对于 错误 (Error:$apply already in progres) 的完美解决方案

对于angular,

$$phase 是 作为angular 内部状态表示位,用来标示当前是处于哪个阶段。

用有的阶段有

$digest

$apply

在使用的是例如你想调用scope.$apply的时候,经常会遇到这样的错误

Error:$apply already in progress

为了预防这样的错误,

有人是这么写的

if (!scope.$$phase && !scope.$root.$$phase){
    scope.$apply();  
}

一个合理的做法

就是使用$timeout 代替使用,这种写法是目前最好的方法了。

$timeout(function(){
    // anything you want can go here and will safely be run on the next digest.
})






标签: angular
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 79
博文 211
码字总数 91232
×
bosscheng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: