当meteor用户退出时,我可以访问www.foo.com/usernameA,这将打开带有所有个人资料信息的usernameA页面。当我为www.foo.com/usernameB执行此操作时,会发生同样的事情。所有这一切都很棒。当我与用户登录流星帐户并尝试输入相同的地址到用户名时,我不断被路由到当前登录的用户个人资料页面。当前登录的用户一直劫持Router.current()。params.username并始终将其作为当前参数。
以下是我的代码的基础知识:
routes.js
Router.route('/:username', {
template: 'userPubProfile',
onBeforeAction: function(){
var profileUserExists = Meteor.users.find({"profile.user-url" :
Router.current().params.username}).count();
if (profileUserExists == 0) {
this.render('404');
}
else {
this.next();
}
}
});
userPubProfile.js
Template.userPubProfile.helpers({
'userFirstName' : function(){
var getUser = Meteor.users.findOne({"profile.user-url" :
Router.current().params.username});
return getUser.profile['first-name'];
}
});
我的问题: 当用户在尝试使用/:username参数连接到路由器时登录或注销时,如何使路由工作相同?
答案 0 :(得分:1)
我要感谢大家。我能够解决这个问题。这是因为在构建我的/:username路由以收集用户名路由器参数之前插入的旧行。我最终发现我的Accounts.onLogin()里面有一个正在做的电话......
var getUserUrl = Meteor.user().profile['user-url'];
Router.go('/' + getUserUrl);
我不得不简单地删除这些行,现在一切都正确!谢谢!