我正在使用 Backbone.js。我正在监听我的收藏的“添加”事件
this.listenTo(this.collection, "add", this.addOne);
它将像这样附加 View 对象:
addOne: function (as) {
var v = new XUView({model: as}).render();
$(v.el).prependTo($('#object-list')).hide().fadeIn().slideDown();
}
现在,如果项目已从集合中删除,我想自动从 View 中删除对象。我正在监听“删除”事件:
this.listenTo(this.collection, "remove", this.removeOne);
我为删除功能尝试了几种方法,但没有一个能完成这项工作。 removeOne 函数被正确触发,但正如我所说,没有效果。如何从前端删除 View 对象?
我已经尝试过:
XUView.remove(XUView.where(as));
XUView.remove(as);
this.collection.remove(as);
this.collection.remove(this.collection.where(as));
最佳答案
您必须在集合和模型 View 之间保留一个映射表。当基于该映射表触发删除事件时,您知道应该删除 DOM 中的哪个元素或者哪个是 View 。
在 addOne 函数中,您可以设置模型上的 View
addOne: function (as) {
var v = new XUView({model: as});
v.render();
as.view = v;
$(v.el).prependTo($('#object-list')).hide().fadeIn().slideDown();
}
并在删除函数中
removeOne:function(model){
model.view.remove();
}
关于javascript - 从集合中删除时,从 View 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28520772/