Iron router:从路由器控制器调用Meteor.user()返回错误
在Iron router path controller中,我试图根据用户登录状态加载不同的模板,如下所示: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
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”将在开始时执行一次(当用户可能未登录时),并且在用户登录/注销时不会重新执行
阅读文档,这就是做你想做的事情