流星和被动的'不同的

时间:2015-10-29 01:40:23

标签: meteor

假设我有一个包含字段foo的集合,并且我想获得唯一值的计数。

Collection.distinct('foo').length;

我希望我的模板中有值,例如{{ fooCount }}

我怎么能这样做,并且号码在Meteor中是被动的?

1 个答案:

答案 0 :(得分:0)

这将是这样的:

Template.yourTemplateName.helpers({
         fooCount() {
           var foos = CollectionName.find({foo: {$exists: true}})
                                    .map(d => d.foo);
           return _.uniq(foos).length;

         }
});

这将是被动的,因为它是使用反应数据源的模板助手。请注意underscores的使用是核心流星的一部分。

另外,只是为了好玩,你可以这样做:

Template.yourTemplateName.helpers({
             fooCount() {
               return CollectionName.find({foo: {$exists: true}})
                        .map(d => d.foo)
                        .reduce((acc, b) => _.contains(acc, b) ? 
                                              acc : acc.concat(b), []).length

             }
    });