这是我购物车的路由器。
Router.route('/bag', function () {
//FIXME: upon refresh, Meteor.user() is an empty object it seems?
if (Meteor.user()) {
this.render('Bag', {to: 'content'});
} else {
Router.go('/login');
}
});
当您登录并单击链接转到“/ bag”时,一切都会正确呈现。但是,如果您在“/ bag”页面上刷新页面,则会将我重定向到“/ login”页面。有关Meteor的遗漏吗?我在错误的地方打电话给Meteor.user()
吗?
答案 0 :(得分:2)
多数民众赞成因为Meteor.user()
集合还没有准备好,你也有加载模板吗?
尝试把这个
waitOn:function(){
return Meteor.subscribe('someUsercollectionPublish')
}
还有更多选择可以实现这一目标。
与使用密码包中的helper currentUser
一样。
{{#if currentUser}}
<!-- show bags stuff -->
{{else}}
{{> login}} <!-- render login Template -->
{{/if}}
或使用iron:router
方法onBeforeAction
。
var requireLogin = function() {
if (! Meteor.user()) {
this.render('login');
} else {
this.render('bag');
}
}
Router.onBeforeAction(requireLogin, {only: 'bags'});