'Safe' $apply in Angular.JS

1601 查看

https://coderwall.com/p/ngisma/safe-apply-in-angular-js

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