$digest已经运行- AngularJS

$digest already running - AngularJS

本文关键字:AngularJS 运行 digest      更新时间:2023-09-26

我想在一些新数据加载到我的工厂后"刷新"我的视图,但我不知道如何正确地做到这一点。

$http.post(url, postKunde).success(function(data, status) {
                $rootScope.calc = data.calc;
                $rootScope.$apply();
        }).error(function(data, status) {
                console.log(status);
        });

这是我在工厂使用的方法。每次它被触发,我得到这个错误:

Error: $digest already in progress

谁能告诉我如何正确地做这件事?谢谢…

您可以编写一个安全应用程序来检查是否存在摘要:

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

这个小宝石的参考:https://coderwall.com/p/ngisma