“错误:[$ rootScope:inprog] $申请已在进行中”当使用$ apply同时发生多项操作时

时间:2018-03-22 07:50:38

标签: angularjs

看看我的代码

$scope.update = function () {
    //remove empty row in list before update
    if ($scope.PatternData.length > 1) {
        removeEmptyRow($scope.PatternData);
    }

    if (!$scope.$$phase) {
        $scope.$apply();
    }
    $scope.$apply();

    //update data
    orderPatternService.updatePattern(function () {
        //reload datatable
        $scope.tableParams.reload();
        //display notification
        $timeout(function () {
            notifyService.popEdit();
        });
    },$scope.PatternData);
};

我希望remove empty row in list before updateupdate data行动同时发生,所以我把

if (!$scope.$$phase) {
        $scope.$apply();
    }
    $scope.$apply();

介于这两个行动之间。

我已经实现了我的想法而没有任何影响,但是,控制台中发生了Error: [$rootScope:inprog] $apply already in progress错误

请让我知道此错误的原因

1 个答案:

答案 0 :(得分:1)

您可能在代码中出错:

if (!$scope.$$phase) { // If you are controlling the digest phase like this,
    $scope.$apply();
}
$scope.$apply(); // then this line is not necessary!