为了账号安全,请及时绑定邮箱和手机立即绑定

angular如何判断此时是否在digest cycle中?

angular如何判断此时是否在digest cycle中?

月关宝盒 2018-08-09 09:09:28
是否可以判断现在处于一个digest cycle中?直接用$rootScope.$$phase判断吗?我想判断如果没有处理轮询中就手动调用scope.$digest(),这个可以用$evalAsync解决吗?
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

目前AngularJS未提供公开的API判断,不过我翻了一下源码发现:ngModelDirective 指令写法中有这么一段

if ($rootScope.$$phase) {
  scope.$evalAsync(modelCtrl.$setTouched);
} else {
  scope.$apply(modelCtrl.$setTouched);
}

通过$rootScope.$$phase判断当前如果在digest循环中,调用scope.$evalAsync,不在则调用 scope.$apply


查看完整回答
反对 回复 2018-09-26
  • 1 回答
  • 0 关注
  • 747 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信