在Angular JS应用程序中遇到异步数据问题

时间:2015-12-13 16:20:14

标签: javascript angularjs

我正在修改现有的Angular JS应用程序(代码可以在https://github.com/gmathiou/gtfs-manager找到)。

在一个文件(trips-page-module.js)中,我有以下代码:

$scope.saveTrip = function(itemToSave) {
    $scope.computeNewStoptimeSequence();
    LoadDataService.saveTrip(itemToSave)
      .then(function(data) {
        if (data["_id"] != null) {  
          $scope.tripsForRoutes.push(data);
          $scope.active_trip_item = data;
        }
      })
      .then( function (data) { 
          var dirtyElem = angular.element("ng-dirty");
          var toUpdate = [];
          for(var i = 0; i <= dirtyElem.length, i++){
             toUpdate.push(dirtyElem[i].scope().stoptime);
          } 
          LoadDataService.saveStopTimesForTrip(toUpdate);
      })
      .then(function(data) {
        $scope.editing = false;
      });
  }

基本上,它创建了一个包含所有脏元素的数组,在将它传递给LoadDataService.saveStopTimesForTrip之前必须进行更新。 不过,当我运行它时,我得到的脏肮脏[i]未定义。我清楚地明白这是由于代码的异步性质。 我没有得到的是如何解决它?我如何等待所有异步功能完成?

0 个答案:

没有答案