2016-05-29 121 views
0

當流星用戶註銷時,我可以訪問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參數連接到路由器時已登錄或註銷?

+0

在返回之前在你的助手中嘗試'console.log'並觀察你得到的結果。 –

+0

我做了console.log。問題是......當流星用戶登錄後,我自動輸入的任何網址都會被重定向到登錄的用戶名。例如:如果我登錄並且用戶配置文件是www.website.com/ john,然後我輸入www.website.com/bob ....路由器自動將bob重定向到www.website.com/john ...爲什麼登錄時重定向? – jremi

回答

1

我想感謝大家。我能解決這個問題。這是由於我在構建我的/:用戶名路由以收集用戶名路由器參數之前插入的舊線路。最後我發現,我的Accounts.onLogin內()我有一個呼叫正在做......

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

我不得不簡單地刪除這些行,現在一切是正確的!謝謝!

相關問題