mfi*_*nov 5 meteor iron-router
我正在尝试在登录后将用户重定向到页面.尝试使用Accounts.onLogin回调中的Router.go:
Accounts.onLogin () ->
Router.go('users.new')
Run Code Online (Sandbox Code Playgroud)
当我在服务器上尝试这个时,我得到了 TypeError: Object [object Object] has no method 'go'
在客户端我得到 Accounts.onLogin undefined
好吧,你这里有一个问题:
Accounts.onLogin在客户端上未定义,因为它是仅用于服务器的 API。
更新 15/06/2015 :这不再是真的,Accounts.onLogin现在也可以在客户端上使用。
Router.go 在服务器上未定义,因为使用 iron:router 进行重定向是仅限客户端的 API。
如果您正在使用,{{> loginButtons}}可以在客户端上尝试此解决方法:
Tracker.autorun(function(){
if(Meteor.user()){
// login handler
Router.go("users.new");
}
else{
// logout handler
}
});
Run Code Online (Sandbox Code Playgroud)
如果您使用的是自定义登录表单Meteor.loginWithSomething,则可以在登录方法的成功回调中执行重定向。