Javascript $digest已在运行-AngularJS
我想在一些新数据加载到我的工厂后“刷新”我的视图,但我不知道如何正确执行此操作Javascript $digest已在运行-AngularJS,javascript,http,model-view-controller,angularjs,Javascript,Http,Model View Controller,Angularjs,我想在一些新数据加载到我的工厂后“刷新”我的视图,但我不知道如何正确执行此操作 $http.post(url, postKunde).success(function(data, status) { $rootScope.calc = data.calc; $rootScope.$apply(); }).error(function(data, status) { console.lo
$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);
}
};
这个小宝石的参考资料:您可以编写一个安全应用程序,检查是否有摘要:
$scope.safeApply = function(fn) {
var phase = this.$root.$$phase;
if(phase == '$apply' || phase == '$digest') {
if(fn && (typeof(fn) === 'function')) {
fn();
}
} else {
this.$apply(fn);
}
};
这个小宝石的参考资料:的可能重复项您能摆脱
$rootScope.$apply()
调用吗?是的,但是数据上的更改不会应用于视图。$http
回调包含在对$apply()
的调用中(或者它们调用$apply
),所以您不需要调用$apply()
此处。的可能重复项您可以去掉$rootScope.$apply()
调用吗?是的,但是数据上的更改不会应用于视图。$http
回调包含在对$apply()
的调用中(或者它们调用$apply
),因此您不需要调用$apply()
这里。谢谢。这帮了大忙!谢谢,这帮了大忙!