错误:达到$ $ digest()迭代。中止!使用httpInterceptor(iFrame)IE

时间:2012-10-29 18:48:17

标签: internet-explorer http request angularjs digest

我正在使用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时我看到了这个错误,但我没有找到原因。如果您遇到类似问题,请给我一些建议。谢谢!

1 个答案:

答案 0 :(得分:1)

在引用$ rootScope时,看起来你正在倾斜角度。$$ childHead。如果这是一个内部构造,那么这很可能是你的问题。你好像正在用角度比赛来更新同一个领域。 See this solution