将多个游标返回到模板

时间:2014-06-18 18:50:12

标签: meteor

我有一个名为notifications的模板助手,我想将3个集合游标返回到我的模板,以便我可以查看所有

模板
<ul class="dropdown-menu notification">
    {{#if notificationCount}}
        {{#each notifications}}
            {{> notification}}
        {{/each}}
    {{else}}
        <li><span>No Notifications</span></li>
    {{/if}}
</ul>
帮手
notifications: function() {
    if (Meteor.user()) {
        var accepted = Notifications.find({ origin: Meteor.user().username, status: 'ACCEPTED' });
        var denied = Notifications.find({ rival: Meteor.user().username, status: 'DENIED' });
        var confirmed = Notifications.find({ rival: Meteor.user().username, status: 'CONFIRMED' });
        return accepted, denied, confirmed;
    }
}

最好的方法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

你的问题的字面答案是在所有游标上运行fetch并将它们连接成一个数组。

return accepted.fetch().concat(denied.fetch(), confirmed.fetch());

因为您的所有文档都来自单个集合,所以您也可以使用更复杂的查询。试一试:

var username = Meteor.user().username;
return Notifications.find({
  $or: [
    {
      origin: username,
      status: 'ACCEPTED'
    }, {
      rival: username,
      status: {$in: ['DENIED', 'CONFIRMED']}
    }
  ]
});