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 に答える