从一个已有的集合中创建一个新的集合
Create a new collection from an existing one backbone.js
我有一个视图,应该为所有球队中拥有最大points
的球员渲染模型。有很多方法可以做到这一点,但这是我要走的路。
getMax : function(attribute) {
return this.collection.max(function (team) {
//return team.get('players').get(attribute);
var test = new PlayersCollection(team.get('players'));
console.log(test)
}, this);
},
这是一个用于团队的marionette collectionView(很好地组合,但它像一个集合一样工作)。我理解为什么test
返回每个队伍的队员,但我想不出一种方法将所有队员合并到一个集合中,然后查询谁是max points
的领导者。
也就是说,如果有一种方法可以确定谁是leader,我可能可以避免合并它们,但由于集合是嵌套的,我有点难住了。
由于this.collection
是团队,我认为this.collection.get('players').get('points')
之类的东西可以让我获得所有团队的最大值,但这不起作用。
奇怪的解决方案1我做了一点黑客攻击,想出了这个。这有很多问题,因为它剥夺了骨干功能,这意味着我不能返回最大球员的模型,只有球员的点,就是这样。还在思考(脑出血lol)
teams = App.data.teams
var points1 = teams.get('5368dcc1227a937829b2cb4a').players.pluck('points')
console.log(points1)
var points2 = teams.get('5368dcd9227a937829b2cb4c').players.pluck('points')
console.log(points2)
var test = points1.concat(points2);
console.log(test)
var maxi = _.max(test);
console.log(maxi)
稍微好一点的解决方案2合并对象数组
teams = App.data.teams
var home = teams.get('5368dcc1227a937829b2cb4a').players.models;
var away = teams.get('5368dcd9227a937829b2cb4c').players.models;
all = home.concat(away);
console.log(all)
我想你要找的是这样的东西:
_.max(this.collection.get('players').pluck('points'));
好的,所以我想我设法创造了一个比较优雅的解决方案,在主机上玩游戏真的可以教会你很多东西(如果你想变得更好,强烈推荐)。
teams = App.data.teams
var home = teams.get('5368dcc1227a937829b2cb4a').players.models;
var away = teams.get('5368dcd9227a937829b2cb4c').players.models;
all = home.concat(away);
leaders = new PlayersCollection(all)
function mostPoints() {
return leaders.max(function(leader) {
return leader.get('points');
});
}
mostPoints();
现在该函数将返回所有人中得分最多的玩家的模型,非常酷!
相关文章:
- Meteor.js只更新一个参数,而不是整个集合
- 如何查找流星集合中最后一个元素/对象的id
- 包含一个集合的1到3个成员但其中一个成员不能单独存在的正则表达式
- 将一个对象集合映射到汇总集合的单个对象
- 如何将两个集合转换为一个集合
- Meteor:访问另一个集合,每个块中有一个id
- 主干-用一个请求替换整个集合
- 如何计算mongodb中两个集合中一个字段的不同值的数量
- 组织一个backbone.js集合
- 如何在集合中指定模型的一个属性
- Backbone.js视图可以有一个模型和一个集合吗
- 另一个集合视图中的集合视图
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- Backbone.Collection 获得第一个 n 作为新集合
- Mongo-Aggregate:如何与另一个集合中的字段进行比较
- Meteor - 将 mongodb 查询分配给变量并将其插入到另一个集合
- 在 Backbone.js 中为集合中的一个元素创建详细信息页面
- 基于 MongoDB 中另一个集合中的数据查询一个集合中的数据
- 流星 - 将数据从一个集合移动到另一个集合
- 更改一个对象的可观察属性会更改集合中所有对象的属性