我有一个 Backbone 模型集合。
MyCollection = Backbone.Collection.extend({
model: myMymodel;
});
MyModel = Backbone.Model.extend({
...
});
每个模型都有一个 View
myView = Backbone.View.extend({
initialize: function() {
this.model = new MyModel();
};
});
服务器端没有持久性。这仅用于构建客户端信息。因此模型没有 ids,并且尚未配置 Backbone.sync 的 url。
在 View 中,我想从集合中删除模型。
我尝试过以下方法:
this.model.trigger( "destroy" );
但是它不起作用。销毁事件不会传播到集合。
知道我做错了什么吗?
谢谢
最佳答案
我认为您根本没有实例化该集合。至少从代码中无法看出这一点。如果您只是创建模型实例但未将其添加到任何集合中,则 this.model.trigger("destroy");
将不执行任何操作。
myView = Backbone.View.extend({
initialize: function() {
this.coll = new MyCollection();
this.model = new MyModel();
this.coll.add(this.model);
};
});
现在模型已成为集合的一部分:
this.model.destroy()
进行删除 API 调用并从集合中删除
this.collection.remove(this.model)
从集合中删除模型,但不进行删除 API 调用。
this.model.trigger("destroy");
触发模型上的销毁事件,但不会销毁模型本身。如果模型是集合的一部分,则与collection.remove(this.model)
相同。
关于javascript - 销毁事件不会从 Backbone 模型传播到 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255600/