Meteor:显示列表中的类别

时间:2015-10-07 22:11:58

标签: meteor meteor-blaze

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

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

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

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

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

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

关于如何做到这一点的任何想法?

感谢。

1 个答案:

答案 0 :(得分:2)

您只需fetch项目,他们就结果pluckuniq执行操作。假设您有一个包含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>