Jam*_*een 9 meteor iron-router
我有一个字段集合groupNumber和number:
groupNumber, number
=================
1, 1
1, 2
1, 3
1, 4
2, 1
2, 2
2, 3
2, 8
3, 4
3, 5
...
Run Code Online (Sandbox Code Playgroud)
我可以打印整个系列
{{#each numbers}}
<tr>
<td>{{groupNumber}}</td>
<td>{{number}}</td>
</tr>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
但我需要它作为链接.因此,在第一页我需要查看组号列表(1,2,3,...),当我点击其中一个组时,我会看到属于该组的号码.
如果我拥有groupNumber并number分成两个不同的集合并用于iron-router在组列表和属于组的数字列表之间导航,我可以很容易地实现这一点.但是如何在同一个集合中的两个字段中获得这个?
为什么不手动"分组"您的群组?
首先获取所有组号.
var allValues = YourCollection.find().fetch();
var uniqueGroups = _.union(_.pluck(allValues, 'groupNumber')) //outputs [1,2,3]
Run Code Online (Sandbox Code Playgroud)
在那之后,简单的路线将完成这项工作:
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
}
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
然后在your_template检查中,如果您有groupNumber,则显示所有数字YourCollection.find({groupNumber: this.groupNumber})
如果没有,那么只需渲染this.groups:
{{#each groups}}
<a href="/group/{{this}}">{{this}}</a>
{{/each}}
Run Code Online (Sandbox Code Playgroud)