Javascript 销毁模型时如何删除嵌套集合?
我正在初始化嵌套集合,如下所示:Javascript 销毁模型时如何删除嵌套集合?,javascript,backbone.js,collections,model,Javascript,Backbone.js,Collections,Model,我正在初始化嵌套集合,如下所示: var post = { id: 123, title: 'Sterling Archer', comments: [ {text: 'Comment text', tags: ['tag1', 'tag2', 'tag3']}, {text: 'Comment test', tags: ['tag2', 'tag5']} ] }; var PostModel = Backbone.Model.extend({
var post = {
id: 123,
title: 'Sterling Archer',
comments: [
{text: 'Comment text', tags: ['tag1', 'tag2', 'tag3']},
{text: 'Comment test', tags: ['tag2', 'tag5']}
]
};
var PostModel = Backbone.Model.extend({
parse: function (response) {
if (response.comments) {
response.comments = new Backbone.Collection(response.comments);
}
return response;
}
});
var post = new PostModel(post, {parse: true});
删除模型时,我应该如何删除嵌套的“注释”集合
post.destroy();
这可以用来删除评论
sync : function(method,model,options){
if(method=='delete'){
this.comments.destroy();
}
Backbone.sync(method,model,options);
}
您可以覆盖PostModel的destroy方法,而不是sync方法,对于没有id属性的新模型,将不会调用sync方法:
谢谢你的回复,但是这个.comments.destroy;可以是异步的。此.get'comments'是否具有上述评论员建议的.destroy方法?Backbone.Collection没有默认的destroy方法
destroy: function(options) {
this.get('comments').each(function(mdl) {
mdl.destroy();
});
Backbone.Model.prototype.destroy.call(this, options)
}