Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:[$rootScope:inprog]$digest已在进行中-PromiseObjecs/For循环_Javascript_Angularjs - Fatal编程技术网

Javascript 错误:[$rootScope:inprog]$digest已在进行中-PromiseObjecs/For循环

Javascript 错误:[$rootScope:inprog]$digest已在进行中-PromiseObjecs/For循环,javascript,angularjs,Javascript,Angularjs,本质上,我尝试在for循环中同时运行两个promise对象: Error: [$rootScope:inprog] $digest already in progress 为什么会发生这个错误我为我的无知道歉,但我不明白我在哪里调用$digest 提前感谢您如果您在摘要周期已经运行时调用$scope.$apply,您将收到该错误。可以说,您是在Angular space中调用$apply,而不是在范围外调用第三方回调。在您省略的代码中,您是否调用$scope.$apply?不,您可以看到所有角

本质上,我尝试在for循环中同时运行两个promise对象:

Error: [$rootScope:inprog] $digest already in progress
为什么会发生这个错误我为我的无知道歉,但我不明白我在哪里调用$digest
提前感谢您

如果您在摘要周期已经运行时调用$scope.$apply,您将收到该错误。可以说,您是在Angular space中调用$apply,而不是在范围外调用第三方回调。在您省略的代码中,您是否调用$scope.$apply?不,您可以看到所有角度代码。代码的其余部分只是将一些变量相加-删除此代码并不能解决问题error@ste2425-有什么建议吗?恐怕没有。我个人没有遇到过这种情况。我要做的是排除一个AJAX调用,看看是否有冲突。另一件事则更具结构性。我尽量不让自己陷入那种境地。我执行一个AJAX调用来传递所有数据,并让服务器来处理,而不是使用少量数据来执行许多AJAX调用。另一方面,将$scope用作第一个参数是一个很好的做法。虽然Angular通过名字计算出来,但不会有太大区别。您是否希望在promiseObj中存储成功CB的结果?
angular.module('core').controller('HomeController', function($q, $http, $scope) {

for (var i = 0; i < window.config.Environments.length; i++) {
    for (var j = 1; j < window.config.Clusters[i] + 1; j++) {

//Promise Object 1
        promiseObj.physical[window.config.Environments[i] + "#Cluster" + j] = $http.get('url/search?idc=' + window.config.Environments[i] + '&type=Physical&cluster=' + j).success(function(i,j) {
            return function(data) {

            $scope.servers = data; // get data from json

            angular.forEach($scope.servers, function(item) {

                //some code
            });
            }

        }(i,j));
    //Promise Object 1
           promiseObj.virtual[window.config.Environments[i] + "#Cluster" + j] = $http.get('url/search?idc=' + window.config.Environments[i] + '&type=Virtual&cluster=' + j).success(function(i,j) {
            return function(data) {

            angular.forEach($scope.virtualservers, function(item) {
  //some code


            });

            }

        }(i,j));

}
}
});