当流星用户注销时,我可以访问www.foo.com/usernameA,这会带来usernameA页面与所有的个人资料信息。当我为www.foo.com/usernameB执行此操作时,会发生同样的情况。所有这些都很好。当我用用户登录流星账户并尝试输入用户名相同的地址时,我会不断被路由到当前登录的用户配置文件页面。当前登录的用户不断劫持Router.current()。params.username并始终将该参数作为当前参数。当流星用户登录时Iron Router不会将Router.current().parameters.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参数连接到路由器时已登录或注销?
在返回之前在你的助手中尝试'console.log'并观察你得到的结果。 –
我做了console.log。问题是......当流星用户登录后,我自动输入的任何网址都会被重定向到登录的用户名。例如:如果我登录并且用户配置文件是www.website.com/ john,然后我输入www.website.com/bob ....路由器自动将bob重定向到www.website.com/john ...为什么登录时重定向? – jremi