我有2个资源:项目及其任务。 当使用需要更新项目时,他们可能会更新标题,或者他们可以更新其任务。
如果用户创建任务,则需要首先将其保存到数据库以获取ID,然后我可以将id分配给项目的tasks属性。
因此,在保存所有任务后需要保存项目。
$scope.update = function() {
//each taskTemplate can be updated concurrently, or at the same time. they do not need to updated one by one
for (var taskTemplates in $scope.taskTemplates) {
//i need to update all the tasks, and then I can update the project
}
//this needs to be update after all the taskTemplates are updated
$scope.projectTemplate.$update(function() {
$location.path('projectTemplate/' + $scope.projectTemplate._id)
}, function(errResponse) {
$scope.error = errorResponse.data.message
})
}
如何实施此类订购?
答案 0 :(得分:0)
将任务承诺与all()
合并,并使用all(...).then(...)
保存项目。详情:
$scope.update = function() {
var promises = [];
for (var taskTemplates in $scope.taskTemplates) {
promises.push(taskResource.save(taskTemplates).$promise);
}
$q.all(promises).then(function() {
return projectResource.save(currentProject).$promise;
});
}