AngularJS scope.apply会导致错误

时间:2016-07-01 10:09:01

标签: javascript angularjs angularjs-scope apply

我有这个函数从数据库中获取数据并更新范围的值。

$scope.loadFromDB = function(){
              console.log("loadFromDB function");
              $http({
                      url: '/getData',
                      method: "GET",
                  })
                  .then(function(response) {
                          // success
                          var data = JSON.parse(response.data)
                          data = JSON.parse(data.data)
                          $scope.gridDataDayData = data.dayData;
                          $scope.gridDataKlasoveNames = data.klasoveNames;
                          $scope.gridDataNumOfRows = data.numOfRows;
                          $scope.$apply();
                      },
                      function(response) { // optional
                          // failed
                          console.log("get unsuccessful");
                      });
            };

当我运行时,我得到了

error: [$rootScope:inprog] http://errors.angularjs.org/1.4.3/$rootScope/inprog?p0=%24digest

我无法弄清楚如何解决这个问题。请帮帮我。

谢谢

2 个答案:

答案 0 :(得分:0)

您不需要触发摘要周期,因为您处于角度生命周期内...它已经在运行。 当您在有角度的方式之外时需要手动触发:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

答案 1 :(得分:0)

只需删除

.user:after {
  content: ": ";
}
.user + .bot:after {
  content: "=> ";
}

var data = JSON.parse(response.data) data = JSON.parse(data.data) and $scope.$apply()