合并两个骨干收集和模型转换成使用一个对象下划线 [英] Merging two backbone collection and models into one object using underscore
问题描述
我有两个骨干集合类别和项目,类别包含ID,名称和项目(W / C包含以逗号分隔字符串格式项IDS)和项目集合,其中包含的项目模型(ID,姓名等类别车型)。
I have two backbone collections Categories and Items, Categories contains category models with id, name, and items (w/c contains item ids in string format separated by commas) and Items collection that contains item models(id, name, etc.).
如何将它们合并到可以很容易地在一个车把模板来呈现一个目的
How do I merge them into one object that can be easily be rendered in a handlebars template
样品结构:</ STRONG>
Sample Structure:
var Categories = [{'id':'1', 'category_name':'Burgers', 'category_items':'1,2'},{'id':'2','category_name':'Drinks','category_items':'3'}];
var Items = [{'id':'1','item_name':'Burger 1'},{'id':'1','item_name':'Burger 2'},{'id':'1','item_name':'Chicken; 1'}];
示例输出:
var output = [{'id':'1', 'category_name':'Burgers', 'items':[{'id':'1','item_name':'Burger1', ...},{'id':'1','item_name':'Burger2', ...} ]}, {'id':'2', 'category_name':'Chicken', 'items':[{'id':'3','item_name':'Chicken1', ...} ]
是的,我想够了,但我似乎无法去管理它。
And yes, i tried enough, but I can't seem to manage it
推荐答案
依托下划线的有用的功能:
Relying on Underscore's helpful functions:
var json = _.map(c.toJSON(), function(c) {
return _.extend(c, {
category_items: _.map(c.category_items.split(','), function(id) {
return i.get(id).toJSON();
})
});
});
第一个 _。图
加上 _。延长
只服务于目的关于更换 category_items
。我觉得很侮辱,但不记得,如果有,将做到这一点在一杆的任何方法。
The first _.map
coupled with _.extend
just serves the purpose on replacing the category_items
. I find it quite abusive, but can't remember if there's any method that would do that in one shot.
这篇关于合并两个骨干收集和模型转换成使用一个对象下划线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!