我有一个删除函数,但它的代码不够好。有时会抛出错误,因为 game
被提前删除了,而不是所有的里程碑。如何在所有里程碑成功删除后才调用 game.$remove()
?非常感谢!
$scope.remove = function(game) {
if(game) {
var milestonesToDelete = MilestonesService.query({ gameId: game._id }, function(milestonesToDelete) {
if(milestonesToDelete) {
for(var i = 0; i < milestonesToDelete.length; i++) {
milestonesToDelete[i].$remove();
}
}
});
game.$remove();
for (var j in $scope.games) {
if ($scope.games [j] === game) {
$scope.games.splice(j, 1);
}
}
} else {
$scope.game.$remove(function() {
$location.path('admin/games');
});
}
};
game
和milestones
之间的关系,或者你收到了什么样的错误信息等等。 - Avishgame.$remove()
这一行并点击删除按钮,它将无误地删除所有里程碑(但当然不会删除游戏)。每个里程碑都被分配给游戏:assignedToGame: {type: Schema.ObjectId, ref: 'Game'}
。我想先删除所有里程碑,然后再删除游戏 :-) - ketysek