合并两个骨干收集和模型转换成使用一个对象下划线 [英] Merging two backbone collection and models into one object using underscore

查看:116
本文介绍了合并两个骨干收集和模型转换成使用一个对象下划线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个骨干集合类别和项目,类别包含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();
    })
  });
});

http://jsfiddle.net/626x9/1/

第一个 _。图加上 _。延长只服务于目的关于更换 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆