问题是我想检查用户是否通过我的路线中的 onBeforeAction 内的 Meteor.user() 登录。
问题是,页面重新加载后,Meteor.user() 在加载之前的一瞬间返回未定义。
这是我的路线配置:
Router.map(function() {
this.route('list', {
path: '/list',
template: 'list',
onBeforeAction: function(){
console.log('onBeforeAction');
if(!Meteor.user()){
Router.go('/login');
}
this.next();
}
});
});
我用谷歌搜索了很多以及“waitOn”和“return Meteor.user();”的解决方法似乎不适用于我的情况。
同样有趣的是......在本地它工作得很好,所以我可以重新加载页面并仍然保留在“列表”视图上,但是 Modulus 部署的应用程序的行为如上所述并重定向到登录页面。
有任何想法吗?提前致谢。
最好用!!Meteor.userId()
检查用户是否登录,因为等待从服务器加载用户数据时没有延迟。实际上,Meteor.user
例程或多或少相当于:
function () {
return Meteor.users.findOne({ _id: Meteor.userId() });
}
这解释了为什么它可能会返回undefined
即使用户已登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)