这是我的simple angular 1 app。
Source code此处。
基本上它是copy of this。
我能够进行CRUD操作。问题在于,当我删除记录时。它重定向回主页。我删除的记录仍然在这里。如果我刷新页面,它就会消失。
这是一种删除记录的方法,然后在重定向后,我应该看到最新的列表吗?
更新1:
不幸的是,它仍然没有得到解决。奇怪的是,promise
中的resolve
似乎被缓存了。我在代码中添加了一些console.log。您可以看到代码流。打开chrome开发人员工具来查看它。
答案 0 :(得分:0)
您可以远程删除它,但不能在本地删除它。因此,您只能在刷新后才能看到结果(仅在您从服务器请求更新数据之后)。在服务器端成功后,您需要更新本地联系人。
$scope.deleteContact = function(contactId) {
Contacts.deleteContact(contactId).then(function(data){
...
//DELETE YOU LOCAL CONTACT HERE
...
$location.path("/");
});
}
我没有深入研究您的代码,所以我不知道您应该怎么做,但是当我看到您将$scope.contacts
中的本地联系人保留在ListController
时。 / p>
答案 1 :(得分:0)
我回顾你的代码,问题出在这里:
this.deleteContact = function(contactId) {
var url = backend_server + "/contacts/" + contactId;
// actually http delete
return $http.delete(url)
.then(function(response) {
return response;
}, function(response) {
alert("Error deleting this contact.");
console.log(response);
});
}
如果您有管理联系人的服务,请致电您的服务器以删除该联系人。
无法刷新而无法删除的原因是:
您的代码难以阅读,我建议您使用: