我是Meteor JS的新手,我认为这是一个简单的问题。
我有一个项目列表,每个项目都分配了一个类别。例如:
{Item: "Jump Rope", Category: "Toys"},
{Item: "Apple", Category: "Food"},
{Item: "Pear", Category: "Food"}
等
在侧边栏中,我想列出类别。我以为我找到了一种如何做到这一点的方法,但最终发生的事情是列出了每个类别使用它的次数。
例如,在上面的示例中,食物将被列出两次,而玩具将被列出一次。如果我要添加另一个食物类别项目(例如西红柿),那么食物将在侧栏中列出三次。如果我要添加第二个玩具物品,那么玩具将被列出两次。
这不是我想要的。我想要的是每个类别都在侧栏中列出一次,无论有多少项目。
关于如何做到这一点的任何想法?
感谢。
答案 0 :(得分:2)
您只需fetch项目,他们就结果pluck和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>