Meteor:显示列表中的类别

Meteor: Displaying Categories from a List

我是 Meteor JS 的新手,我有一个我认为很简单的问题。

我有一个项目列表,每个项目都分配了一个类别。例如:

{Item: "Jump Rope", Category:  "Toys"},
{Item: "Apple",     Category:  "Food"},
{Item: "Pear",      Category:  "Food"}

等等

在边栏中,我想列出类别。我以为我找到了一种方法来做到这一点,但最终发生的是每个类别都列出了它的使用次数。

例如,在上面的示例中,Food 将被列出两次,而 Toys 将被列出一次。如果我要添加另一个食品类别项目(例如西红柿),那么食品将在边栏中列出三次。如果我要添加第二个玩具项目,那么玩具将被列出两次。

这不是我想要的。我想要的是无论有多少项,每个类别都在边栏中列出一次。

关于如何做到这一点有什么想法吗?

谢谢。

您可以 fetch the items and them do a pluck and a uniq 结果。假设您有一个 Items 集合,其中包含看起来像 {item: String, category: String} 的文档,您可以使用以下助手:

Template.myTemplate.helpers({
  categories: function() {
    return _.uniq(_.pluck(Items.find().fetch(), 'category'));
  }
});

那么您的模板可能类似于:

<template name="myTemplate">
  {{#each category in categories}}
    <div>{{category}}</div>
  {{/each}}
</template>