当我在模型上调用骨干破坏方法时,我收到此错误。
必须指定“url”属性或函数
我正在使用本地集合,我在网上看到在destroy方法中调用save方法,该方法查找url。有没有解决的办法。如何防止错误发生。
答案 0 :(得分:2)
正如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 :)
答案 1 :(得分:0)
我有类似的问题。我的问题是我使用destroy回调来确定是否从冷却中删除模型:
this.model.destroy({
success: function(model, response) {
this.remove();
}
});
那,在从服务器返回Error 500
进行测试时,我第二次尝试调用destroy 时出现了相同的错误。
解决方案来自the manual。看起来虽然我没有调用this.remove();
,但模型已从集合中移除:
如果您想在从集合中删除模型之前等待服务器响应,请通过{wait:true}。
结果如下:
this.model.destroy({
wait: true,
success: function(model, response) {
this.remove();
}
});