当meteor用户登录Iron Router时,不会将Router.current()。params.username路由到不同的配置文件

时间:2016-05-29 04:42:22

标签: meteor iron-router

当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参数连接到路由器时登录或注销时,如何使路由工作相同?

1 个答案:

答案 0 :(得分:1)

我要感谢大家。我能够解决这个问题。这是因为在构建我的/:username路由以收集用户名路由器参数之前插入的旧行。我最终发现我的Accounts.onLogin()里面有一个正在做的电话......

var getUserUrl = Meteor.user().profile['user-url'];
    Router.go('/' + getUserUrl);

我不得不简单地删除这些行,现在一切都正确!谢谢!