1

有人可以告诉我可能缺少的内容,以便从给定页面访问集合中的数据吗?我可以访问的事件集合,但不会场一个 - 这里是代码:meteor.js - 设置控制器访问集合

//Controller 

UserController = AppController.extend({ 
    waitOn: function() { 
    return this.subscribe('events'); 
    return this.subscribe('users'); 
    return this.subscribe('venues'); 
    }, 
    data: { 
    venues: Venues.find({}), 
    events: Events.find({}), 
    users: Meteor.users.find() 

    } 
}); 

UserController.helpers({ 
    'myEvents': function() { 
     var organizerId = Accounts.userId(); 
     return Events.find({organizerId: organizerId}) 
    }, 
    'myVenues': function() { 
     return Venues.find({}) 
    } 
}); 

的发布&许可文件是事件和地点相同,控制器被路由到正确的页面,会场收集从其他控制器的页面可见。

谢谢您的时间!

回答

1

您无法访问Venue集合的原因是您没有订阅它。 waitOn函数中return this.subscribe('events');之后的两个语句是死代码,因为return语句会终止函数。其结果是,你需要返回订阅的数组:

UserController = AppController.extend({ 
    waitOn: function() { 
    return [Meteor.subscribe('events'), Meteor.subscribe('users'), Meteor.subscribe('venues')]; 
    }, 
    data: { 
    venues: Venues.find({}), 
    events: Events.find({}), 
    users: Meteor.users.find() 
    } 
}); 

请注意:我在您的辅助函数发现两人失踪分号。我强烈建议您修复此问题,因为这可能会导致您的Meteor应用程序出现意外操作,这是由于部署过程的缩减过程。

+1

非常感谢。我没有意识到这一点,我猜订阅用户部分是不必要的,因为我已经有权访问当前用户。干杯! – Sekoul

+0

不客气! –