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

有如下一段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 內部使用的狀態標誌位,用於標識目前是否處於 digest 狀態。

通常程序中不需要關心這個狀態(兩個 $ 打头更说明它是内部使用的),如果你写出了需要关心这个状态的代码,比如这个 safeApply,那一定是哪裡出了問題。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板