0

我正在使用 Backbone、Marionette 和Backbone.localStorage来保存项目列表。我在ItemViews 上有一个删除按钮,它会触发模型的destroy方法。这会成功地从集合中移除模型并触发移除事件。

但是,CollectionView它不会ItemView自动删除它(我认为?它应该),也不会从本地存储中删除模型,所以在重新加载页面时,它又回到了列表中。

编辑:

通过视图上的此方法删除模型:

confirmRemove : function() {
  this._setRemoveState(false);
  this.model.destroy({success: function() { console.log('model destroyed!');}});
  return false;
}

回调确实会success触发。

4

1 回答 1

1

问题:

  1. 我无意中覆盖了ItemView'sremove方法,所以它没有从 DOM 中删除。
  2. destroy仅在具有 id 的模型上运行其同步操作,假设只有具有 id 的模型被持久化到服务器。然而,虽然 Backbone.localStorage 创建了内部 id,但它不会将它们持久化回模型,因此没有 id 属性,Backbone 跳过了从服务器中删除它的过程。
于 2013-08-21T16:42:51.087 回答