angular.js - angularjs 中的$root.$$phase是什么东西?
伊谢尔伦
伊谢尔伦 2017-05-15 16:49:29
0
1
646

有如下一段ng代码:

$scope.safeApply = function(fn){
   var phase = this.$root.$$phase;
   if (phase == '$apply' || phase == '$digest') {
       if (fn && ( typeof (fn) === 'function')) {
          fn();
       }
   } else {
       this.$apply(fn);
   }
}

这段代码的意思应该是说,执行fn这个函数,是否需要调用scope.$apply(),如果不需要就直接调用fn,如果需要,那就调用scope.$apply(fn)...
但是,我想知道$root.$$phase是什么,为什么通过它就可以判断是否需要执行$apply.希望能有懂ng原理的高手帮忙解答一下~ 谢谢~~~

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(1)
世界只因有你

$$phase는 angluar가 현재 다이제스트 상태에 있는지 식별하기 위해 내부적으로 사용하는 상태 플래그입니다. $$phase 是 angluar 内部使用的状态标志位,用于标识当前是否处于 digest 状态。

通常程序中不需要关心这个状态(两个 $ 打头更说明它是内部使用的),如果你写出了需要关心这个状态的代码,比如这个 safeApply

일반적으로 프로그램에서는 이 상태를 신경 쓸 필요가 없습니다(처음에 있는 두 개의 $는 내부적으로 사용됨을 나타냅니다). 이 safeApply code>, 뭔가 잘못된 게 틀림없어요. 🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿