我有一个模型骨干集。
MyCollection = Backbone.Collection.extend({
model: myMymodel;
});
MyModel = Backbone.Model.extend({
...
});
每个模型都有一个视图
myView = Backbone.View.extend({
initialize: function() {
this.model = new MyModel();
};
});
服务器端没有持久性。这仅用于构建客户端信息。因此模型没有id,并且尚未配置Backbone.sync的URL。
在视图中,我想从集合中删除模型。
我尝试了以下内容:
this.model.trigger( "destroy" );
然而它不起作用。 destroy事件不会传播到集合。
知道我做错了吗?
谢谢,
答案 0 :(得分:2)
我认为你根本没有实例化这个系列。至少从代码中得出结论。如果您只是创建模型实例但不将其添加到任何集合,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");
在模型上触发destroy事件,但不会破坏模型。如果model是集合的一部分,则与collection.remove(this.model)
相同。
答案 1 :(得分:0)
collection.remove(model)
将是一个更合适的功能,因为您不是在服务器端持久保存模型。 Backbone.Collection.remove