我希望在将一些新数据加载到我的工厂后“刷新”我的视图,但我无法弄清楚如何正确执行此操作。
$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
谁能告诉我如何正确地做到这一点?谢谢......
答案 0 :(得分: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