meteor - meteor 中具有链接的多级列表

标签 meteor iron-router

我有一个字段groupNumbernumber的集合:

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,...),并且在单击其中一个组时,我会看到属于该组的数字。

如果将groupNumbernumber分为两个不同的集合,并使用iron-router在组列表和属于组的数字列表之间导航,则可以轻松实现此目标。但是,如何使用同一集合中的两个字段来获取此信息呢?

最佳答案

您为什么不手动“分组”您的分组?

首先,获取所有组号。

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}}

关于meteor - meteor 中具有链接的多级列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192490/

相关文章:

meteor - 如何使用Iron Router返回404

javascript - 用铁刷新Meteor页面 :router always clears route

meteor - 每个 Meteor 应用程序有多个(单独/命名空间)Meteor 客户端代码库

mongodb - Meteor Collection.find 在动态 mongo 查询中使用变量作为字段

javascript - 如何允许不同的更新 - Meteor collection.allow

node.js - 在 Meteor.startup 在 Meteor 应用程序中运行服务器端之前,在单独文件中声明的集合未加载

meteor - Path 适用于桌面设备,但不适用于移动设备

jquery - Meteor:当使用iron-router导航到新路线时,仅在移动设备上刷新整个页面

node.js - 如何延迟铁路由器路由查找

javascript - 从对象数组中删除元素