Iron router:从路由器控制器调用Meteor.user()返回错误

Iron router:从路由器控制器调用Meteor.user()返回错误,meteor,iron-router,Meteor,Iron Router,在Iron router path controller中,我试图根据用户登录状态加载不同的模板,如下所示: Router.map(function() { this.route('start', { path: '/', controller: StartController }); }) StartController = RouteController.extend({ template: Meteor.user() ? 'home' : 'lan

在Iron router path controller中,我试图根据用户登录状态加载不同的模板,如下所示:

Router.map(function() {
    this.route('start', {
    path: '/',
    controller: StartController
    });
})

StartController = RouteController.extend({
    template: Meteor.user() ? 'home' : 'landing',
    waitOn: function() {
        return [Meteor.subscribe('something')]
    }
});
但我在控制台中遇到异常: “…错误:Meteor.userId只能在方法调用中调用。请在发布函数中使用this.userId…”


我真的不明白这个错误意味着什么,我在这里做错了什么。

您发布的代码是在服务器上执行的。在服务器上,
Meteor.user()
只能在方法中执行

然而,即使这个错误不存在,您的代码也不会像您所希望的那样工作<代码>Meteor.user()?'home':“landing”将在开始时执行一次(当用户可能未登录时),并且在用户登录/注销时不会重新执行

阅读文档,这就是做你想做的事情