Backbone.js 主干破坏错误
当我在一个模型上调用主干销毁方法时,我得到了这个错误 必须指定“url”属性或函数Backbone.js 主干破坏错误,backbone.js,Backbone.js,当我在一个模型上调用主干销毁方法时,我得到了这个错误 必须指定“url”属性或函数 我正在使用一个本地集合,我在网上的某个地方看到,在查找url的destroy方法中调用了save方法。在这附近有很多地方。如何防止错误发生。正如nrabinowitz在评论中所说,destroy用于从服务器上删除,实际上不会从集合中删除 如果问题是从集合中删除它,就像在评论中看到的那样 模型可以通过模型的collection属性访问其集合 var Model = Backbone.Model.extend({
我正在使用一个本地集合,我在网上的某个地方看到,在查找url的destroy方法中调用了save方法。在这附近有很多地方。如何防止错误发生。正如nrabinowitz在评论中所说,destroy用于从服务器上删除,实际上不会从集合中删除 如果问题是从集合中删除它,就像在评论中看到的那样 模型可以通过模型的
collection
属性访问其集合
var Model = Backbone.Model.extend({
defaults:{ name: 'bob' }
}),
Collection = Backbone.Collection.extend({
model: Model
});
var c = new Collection([{ name: 'joe'}, {name: 'h'}, {name: 'bob'}]);
var m = c.at(1); // get model at index 1 name = h
m.collection.remove( m ); // access the collection via the model we pulled out
console.log( c.length ); // only 2 models within :)
我也有类似的问题。我的问题是,我使用销毁回调来确定是否从CoolRection中删除模型:
this.model.destroy({
success: function(model, response) {
this.remove();
}
});
通过从服务器返回Error 500
进行测试,我在第二次尝试调用destroy时得到了相同的错误
解决办法来自于。看起来虽然我没有调用this.remove()代码>,模型已从集合中删除:
如果要在从集合中删除模型之前等待服务器响应,请传递{wait:true}
结果如下:
this.model.destroy({
wait: true,
success: function(model, response) {
this.remove();
}
});
你想完成什么?
destroy
方法的目的是删除服务器上的模型。我正在尝试删除集合中的模型,但我无法从我所在的代码中访问该集合。我认为销毁可以工作,但它会导致错误,因为模型没有url。所以我想找到一个解决办法。有没有办法从模型本身获取模型所属的集合。集合确实有一个remove
方法。啊,您没有对包含模型的集合的引用(编辑),我知道该移除,但正如我所说的,我无权访问集合本身。所以我不能只打电话给催收。删除(模型)谢谢你的回答;我没有意识到模型有这个集合属性。我很好奇当一个模型被添加到多个集合时会发生什么,所以我检查了,发现了该集合。\ u prepareModel将设置模型的集合属性。因此,如果将同一个模型添加到多个集合中,则其集合属性将指向添加该模型的最后一个集合。此外,我认为您关于“[destroy]实际上不会按原样从集合中删除”的陈述是不正确的。根据和,集合将对模型上触发的“销毁”事件作出反应。注意:随destroy事件一起传递的collection参数反映了模型的collection属性,而不一定是将事件转发到其任何侦听器的集合。