我正在使用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
按钮的人)并显示他们的用户名?任何帮助都会很感激。
答案 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();
}
});