销毁模型实例不会将其从视图/存储中删除

时间:2013-08-20 21:56:07

标签: backbone.js local-storage marionette

我使用Backbone,Marionette和Backbone.localStorage来保留项目列表。我在ItemView上有一个删除按钮,用于触发模型的destroy方法。这将成功从集合中删除模型并触发remove事件。

但是,CollectionView不会自动删除ItemView(我认为应该这样),也不会从本地存储中删除模型,因此在重新加载页面时,它会自动删除confirmRemove : function() { this._setRemoveState(false); this.model.destroy({success: function() { console.log('model destroyed!');}}); return false; } 。回到列表中。

编辑:

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

success

{{1}}回调会触发。

1 个答案:

答案 0 :(得分:1)

问题:

  1. 我无意中覆盖了ItemView的{​​{1}}方法,因此未将其从DOM中删除。
  2. remove仅在具有ID的模型上运行其同步操作,假设只有具有ID的模型持久保存到服务器。但是,虽然Backbone.localStorage创建内部ID,但它不会将它们保留回模型,因此没有id属性,Backbone跳过将其从服务器中删除。