如何在路由页面上显示收集字段(带把手)?

时间:2016-04-10 05:59:05

标签: javascript meteor

我有一个主要的房间页面,其路由到子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中显示未定义。

1 个答案:

答案 0 :(得分:1)

您需要首先访问room对象。我假设您的路线只订阅了一个room。你可以做的就是这个

Template.xxx.helpers({
    singleRoom: function(){
        return Rooms.find({ _id: Router.current().params._id });
    }
});
Blaze中的

{{#with singleRoom}}
    {{endUser}}
{{/with}}