首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Backbone -将2个集合合并在一起?

Backbone -将2个集合合并在一起?
EN

Stack Overflow用户
提问于 2012-09-12 16:30:56
回答 6查看 19.3K关注 0票数 27

假设有两个集合,分别代表/api/page/1/api/page/2;有没有办法(例如,通过下划线)将这两个集合合并成一个新的单一集合?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-12 17:36:57

选项1

如果还没有获取集合,可以获取第一个集合,然后使用{add : true}标志获取第二个集合,第二个集合将合并到第一个集合中:

代码语言:javascript
运行
复制
collection.fetch({data : {page : 2});
=> [{id: 1, article : "..."}, {id: 2, article : "..."}];
collection.fetch({data : {page : 2}, add : true });
=> [{id: 1, article : "..."}, {id: 2, article : "..."}, {id: 3, article : "..."}];

选项2

如果您已经获取了集合并将其存储在两个变量中,则只需将第二个集合的所有内容添加到第一个变量中:

代码语言:javascript
运行
复制
collection1.add(collection2.toJSON());

这个选项受到以下事实的影响:当第二个集合被添加到第一个集合时,第一个集合将触发"add“事件。如果这有副作用,例如由于此事件而重新呈现的不需要的UI,您可以通过添加{silent : true}标志来抑制它

代码语言:javascript
运行
复制
collection1.add(collection2.toJSON(), {silent : true});

选项3

如果您只需要这些集合的JSON格式,即用于HTML模板渲染目的,则可以将所有内容简化为JS字面值(数组、对象):

代码语言:javascript
运行
复制
collection1.toJSON().concat(collection2.toJSON());
=> [{id: 1, article : "..."}, {id: 2, article : "..."}, ...];

选项4=选项2+ 3

如果您已经获取了这两个集合,则可以简化为JS字面量,并将所有内容添加到新的主干集合中

代码语言:javascript
运行
复制
var rawCollection = collection1.toJSON().concat(collection2.toJSON());
var newCollection = new Backbone.Collection(rawCollection);
票数 49
EN

Stack Overflow用户

发布于 2012-09-15 14:20:37

试试这个,集合是模型的数组

代码语言:javascript
运行
复制
collection1.add(collection2.models); 

如果我们使用

代码语言:javascript
运行
复制
 collection1.add(collection2.toJSON());

然后引用chage

票数 41
EN

Stack Overflow用户

发布于 2012-09-12 17:32:54

代码语言:javascript
运行
复制
collection.add(models, [options]) 

集合是模型的数组

代码语言:javascript
运行
复制
collection.models

返回模型数组

向集合中添加一个模型(或模型数组)。

代码语言:javascript
运行
复制
A = Backbone.Collection;
collection1 = new A([
    {key, 'value'},                  //model1
    {key : value1}                   //model2 in collection1
]);

B = Backbone.Collection;
collection2 = new B([
    {key1, 'value'},                 //model1
    {key1 : value1}                  //model2 in collection2
]);


collection1.add(collection2.models);  //now, collection1 has four models..
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12384088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档