如何在Mongo Collection中推送特定用户?

时间:2016-01-08 16:01:59

标签: mongodb meteor

我正在使用Meteor中的应用,我们称之为聚会。我已经完成了基本的操作,现在当用户发送一个邀请邀请参加聚会时我就被请求操作了(我使用accounts-password包来处理auth,如果它意味着什么的话)。我想向meetup的所有者展示哪些用户想要参加此次聚会,所以我就是这样设计的: 我在我的模板中创建了一个“加入”按钮,当我在我的控制器中创建一个事件时,它完美地工作:

'click .join': function(event) {
    var params = {
      user: Meteor.userId(),
      username: Meteor.user().username
    }
    toastr.success('You've send a request');
    Router.go('/meetups');
}

由于我处理这个事件来获取用户的参数,因此很容易显示他的用户名,我这样做:

<p>{{username}} sent a request to join your meetup</p> <button class="btn-primary btn-xs yes">Ok</button> <button class="btn-danger btn-xs no">No</button>

我不想只显示这个用户,我想让meetup的所有者也管理请求(这就是我创建两个按钮的原因)。基本上,这只是一个简单的问题,不是吗?这就是为什么我创建一个名为'Guests'的新Mongo集合,而我的'invite event现在看起来像这样:

'click .join': function(event) {
        var params = {
          user: Meteor.userId(),
          username: Meteor.user().username
        }
    Meteor.call('join', params);
    toastr.success('Ok');
    Router.go('/meetups');
}

如果我使用call函数,我有一个方法来处理它:

Meteor.methods({
    'join': function (params) {
        Guests.insert(params);
    }
});

我还创建了一个名为guests的模板:

<template name="guests">
  {{#each guests}}
    <p>{{username}} sent a request to join your meetup</p> <button class="btn-primary btn-xs yes">Ok</button> <button class="btn-danger btn-xs no">No</button>
  {{/each}}
</template>

并将其包含在我的meetups模板中,如下所示:{{> guests}}。 你可以理解,因为我看不到用户名。我在guests集合中使用了迭代,并尝试获取username,因为它可以很好地定义一个单独的集合。 所以我的问题是如何推动特定用户(在我的情况下是那些点击join按钮的人)并显示他们的用户名?任何帮助都会很感激。

1 个答案:

答案 0 :(得分:1)

<template name="guests">
  {{#each guests}}
    <p>{{username}} sent a request to join your meetup</p> <button class="btn-primary btn-xs yes">Ok</button> <button class="btn-danger btn-xs no">No</button>
  {{/each}}
</template>

如何在guests helper中添加guests template? 你没有定义它。

Template.guests.helpers({
    guests: function () {
        return Guests.find();
    }
});