如何列出Meteor用户并仅显示他们的第一个电子邮件地址?

时间:2015-05-29 19:05:59

标签: mongodb meteor spacebars

我在模板中列出了所有Meteor用户:

<template name="userList">
    <ul>
    {{#each users}}
        <li>
            {{_id}}<br>
            Emails:
                {{#each emails}}
                    {{address}},
                {{/each}}
        </li>
    {{/each}}
    </ul>
</template>

这是我的帮手:

Template.userList.helpers({
    users : function() {
        return Meteor.users.find({});
    }
});

这样可行,但由于我没有使用用户名,我只想列出第一个电子邮件地址,而不必在模板中使用{{#each}}处理它。理想情况下,我对users.primaryEmail有一个值,所以我将帮助器更改为:

Template.userList.helpers({
    users : function() {
        var rawUsers = Meteor.users.find({});
        var users = [];
        _.each(rawUsers, function(user) {
            user.primaryEmail = user.emails[0].address;
            users.push(user);
        })
        return users;
    }
});

...并更新了我的模板代码以输出{{primaryEmail}},但它现在似乎根本没有返回任何用户。我错过了什么?

1 个答案:

答案 0 :(得分:0)

想出我需要使用.fetch()才能将结果作为一个数组&amp; make users.emails [0] work:

var rawUsers = Meteor.users.find({}).fetch();