我有一个主要的房间页面,其路由到子roomPage,其网址为rooms/:_id
。
所以我有一个收集帮助器,旨在找到特定房间内的用户。
Rooms.helpers({
endUser: function() {
return Meteor.users.findOne({ _id: this.receiver }).username;
}
});
每个房间结构都是:
_id: YY, //the roomId
receiver: XX,
people: [receiver, Meteor.userId()]
那么如何在路由的roomPage中显示{{endUser}}
?它显示在主页rooms
中,但不在rooms/:id
中。 console.log正确显示所有用户以及房间被{{# each rooms}}
包裹的房间中的所有接收者。我也订阅了user
发布,但没有区别。
在主页面中工作的地方。
{{#each rooms}}
{{ endUser }}
{{/each}}
这就是我如何帮助你。
Template.roomPage.helpers({
roomPage: function () {
return Rooms.find({ roomId : Router.current().params._id });
}
});
不知怎的,this.receiver在路由roomPage中的console.log中显示未定义。
答案 0 :(得分:1)
您需要首先访问room
对象。我假设您的路线只订阅了一个room
。你可以做的就是这个
Template.xxx.helpers({
singleRoom: function(){
return Rooms.find({ _id: Router.current().params._id });
}
});
Blaze中的,
{{#with singleRoom}}
{{endUser}}
{{/with}}