我正在使用AngularJS,我在这里有一个小问题。我刚刚创建了我的httpInterceptor服务,在执行ajaxRequests时在网页上显示一个微调器,但是当我使用IE在iFrame中运行它时,它会让我犯这个错误;使用Chrome,Firefox不会发生这种情况。以下是拦截器的代码:
.factory('httpInterceptor', function ($q, $rootScope) {
return function (promise) {
$rootScope.$$childHead.spinner += 1;
return promise.then(function (response) {
$rootScope.$$childHead.spinner -= 1;
return response;
}, function (response) {
$rootScope.$$childHead.spinner -= 1;
return $q.reject(response);
});
};
}).config(function ($httpProvider) {
$httpProvider.responseInterceptors.push('httpInterceptor');
var spinnerFunction = function (data, headersGetter) {
return data;
};
$httpProvider.defaults.transformRequest.push(spinnerFunction);
});
由于某种原因,当我在iFrame中运行我的应用程序时,它会显示此错误:
Error: 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations:
我想知道这是因为在iFrame中运行它还是因为promise对象而引起的。
使用ng-repeat时我看到了这个错误,但我没有找到原因。如果您遇到类似问题,请给我一些建议。谢谢!
答案 0 :(得分:1)
在引用$ rootScope时,看起来你正在倾斜角度。$$ childHead。如果这是一个内部构造,那么这很可能是你的问题。你好像正在用角度比赛来更新同一个领域。 See this solution