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>
我是 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>