我正在修改现有的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]未定义。我清楚地明白这是由于代码的异步性质。 我没有得到的是如何解决它?我如何等待所有异步功能完成?