Angularjs 1:删除项目,但项目仍然存在,直到刷新

时间:2017-01-23 10:46:34

标签: angularjs node.js express

这是我的simple angular 1 app

Source code此处。

基本上它是copy of this

我能够进行CRUD操作。问题在于,当我删除记录时。它重定向回主页。我删除的记录仍然在这里。如果我刷新页面,它就会消失。

这是一种删除记录的方法,然后在重定向后,我应该看到最新的列表吗?

更新1:

不幸的是,它仍然没有得到解决。奇怪的是,promise中的resolve似乎被缓存了。我在代码中添加了一些console.log。您可以看到代码流。打开chrome开发人员工具来查看它。

2 个答案:

答案 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);
    });
}  

如果您有管理联系人的服务,请致电您的服务器以删除该联系人。

无法刷新而无法删除的原因是:

  • 您从数据库中删除但不是从角度数组中删除。
  • 必须审核(更新范围(数组))

您的代码难以阅读,我建议您使用:

  • broserfy,watchify
  • lodash
  • 并支持使用mvc