我有一个包含字段groupNumber
和number
的集合:
groupNumber, number
=================
1, 1
1, 2
1, 3
1, 4
2, 1
2, 2
2, 3
2, 8
3, 4
3, 5
...
我可以用
打印整个集合{{#each numbers}}
<tr>
<td>{{groupNumber}}</td>
<td>{{number}}</td>
</tr>
{{/each}}
但我需要它作为链接。因此,在第一页我需要查看组号列表(1,2,3,...),当我点击其中一个组时,我会看到属于该组的号码。
如果我将groupNumber
和number
拆分为两个不同的集合并使用iron-router
在组列表和属于组的数字列表之间导航,我可以轻松实现此目的。但是,我怎样才能在同一个集合中的两个字段中得到它?
答案 0 :(得分:5)
为什么不手动“分组”您的群组?
首先获取所有组号。
var allValues = YourCollection.find().fetch();
var uniqueGroups = _.union(_.pluck(allValues, 'groupNumber')) //outputs [1,2,3]
之后,简单的路线将完成这项工作:
Router.route('/group/:groupNumber?', function () {
this.render('your_template', {
data: function () {
if(this.params.hasOwnProperty('groupNumber')){
return {
groupNumber: this.params.groupNumber
}
} else {
var allValues = YourCollection.find().fetch();
var uniqueGroups = _.union(_.pluck(allValues, 'groupNumber'))
return {
groups: uniqueGroups
}
}
}
});
});
然后在your_template
检查中,如果您有groupNumber,则显示所有数字
按YourCollection.find({groupNumber: this.groupNumber})
如果没有,那么只需渲染this.groups
:
{{#each groups}}
<a href="/group/{{this}}">{{this}}</a>
{{/each}}