2014-10-02 24 views
5

我試圖在登錄後將用戶重定向到頁面。 嘗試使用Router.go從Accounts.onLogin回調:Accounts.onLogin with IronRouter

Accounts.onLogin() -> 
    Router.go('users.new') 

當我嘗試此服務器上,我得到TypeError: Object [object Object] has no method 'go'

在客戶端上我得到Accounts.onLogin undefined

回答

1

嗯,你已經得到了一個問題在這裏:

Accounts.onLogin在客戶端是未定義的,因爲它是一個僅服務器API。

UPDATE 15/06/2015:這不再是真實的,Accounts.onLogin現在也可以在客戶端上使用。

Router.go在服務器上未定義,因爲使用鐵重定向:路由器是僅客戶端API。

如果您正在使用{{> loginButtons}}你可以嘗試在客戶端上此變通辦法:

Tracker.autorun(function(){ 
    if(Meteor.user()){ 
    // login handler 
    Router.go("users.new"); 
    } 
    else{ 
    // logout handler 
    } 
}); 

如果您使用的是自定義登錄表單與Meteor.loginWithSomething,您可以在登錄方法的成功回調執行重定向。

+0

使用Deps.autorun。不知道什麼是Tracker.autorun。也許因爲我在流星0.8這是略有不同的API。 – mfilimonov 2014-10-03 00:00:01

+0

是的,這已經向後兼容地在0.9.1中重命名 – saimeunt 2014-10-03 00:10:43

+0

Account.onlogin不是服務器唯一的東西 - 它是一個無處不在的東西 - 有這個東西,自這個答案以來已經改變了? – Diskdrive 2015-06-15 14:02:02

相關問題