1

在将一些新数据加载到我的工厂后,我想“刷新”我的视图,但我无法弄清楚如何正确执行此操作。

$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

谁能告诉我如何正确地做到这一点?谢谢 ...

4

1 回答 1

4

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

 $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

于 2013-05-17T14:29:12.003 回答