用于保存的Backbone.js解析
我有一个模型,它在属性数组中保留一些其他模型。但是,当存储这些模型时,我不想保留子模块——相反,我想存储主键,然后当从服务器获取模型时,它的解析将通过获取相关模型来“重建”它们 实现这一目标的最佳方法是什么?我最接近让它工作的方法是覆盖sync方法:用于保存的Backbone.js解析,backbone.js,Backbone.js,我有一个模型,它在属性数组中保留一些其他模型。但是,当存储这些模型时,我不想保留子模块——相反,我想存储主键,然后当从服务器获取模型时,它的解析将通过获取相关模型来“重建”它们 实现这一目标的最佳方法是什么?我最接近让它工作的方法是覆盖sync方法: sync : function(method, model, options) { var topics = this.get('topics'); model.attributes.topics = _.pluck(topics, 'id
sync : function(method, model, options) {
var topics = this.get('topics');
model.attributes.topics = _.pluck(topics, 'id');
var ret = Backbone.Model.prototype.sync.call(this, method, model, options);
this.attributes.topics = topics;
return ret;
},
但这通常会失败,将键留在属性中而不是完整的模型中&因此崩溃
解析函数(稍作解释):
我要做的是沿着这些思路做一些事情:
parse : function(response) {
this.topics = _.map(response.topics, function(item) {
return app.topics.getByPK(item);
}
return response;
}
它使您的ID数组始终保持完整,您可以使用
this.topics
而不是this.get('topics')
或this.attributes.topics
来访问它。您的parse
函数是什么样子的?我在上面添加了它(或至少是相关部分)。
parse : function(response) {
this.topics = _.map(response.topics, function(item) {
return app.topics.getByPK(item);
}
return response;
}