用例:用户创建一个新任务,该任务必须通过 API 向上游发送。当该 API 返回成功时,我将其添加到显示范围。我可以正常工作:
$http.post('some_url', newtask).success(function(data) {
$scope.tasks.push(data);
});
(newtask 是前面定义的一个简单对象,这里没有展示)。
问题是,API 很慢(虽然可靠),而我希望它感觉像一个实时应用程序。所以我想立即将新任务推送到 $scope,然后在 API 返回成功时将其替换为“真实”任务。所以我在上面加上:
$scope.tasks.push(newtask); // Add to UI immediately (provisionally)
现在发生的是立即添加新任务,然后在 API 返回时添加任务的第二个副本。所以我想做的是在添加第二个副本后立即删除第一个副本。
我似乎无法找到一种方法来做到这一点。还是我的方法全错了?(我承认,这种方法确实有点像 hack,所以我愿意接受建议)。