2017-02-22 161 views
0

我有一个流星应用程序,并与包iron-router,我试图阻止所有页面,如果用户没有连接,除了几页。如果没有指定,我们继续登陆页面。 所以在文件router.js,我有:重定向与铁路由器和onBeforeAction流星应用

Router.onBeforeAction(function() { 
    if (!Meteor.userId()) { 
     Router.go('login'); 
    } else { 
    this.next(); 
    } 
}, { 
except: [ 
    "login", "landing", "register", "forgotPassword" 
] 
}); 

Router.route('/', function() { 
    Router.go('landing'); 
}); 

但是,当我去localhost:3000/我重定向到登录页面,而不是到目标网页。

如果我删除了onBeforeAction函数,我将重定向到登录页面。 所以它必须是这个2功能的问题,但我不知道在哪里。也许我需要在例外中确定“/”,但它不起作用。你有好主意吗 ?

回答

0

你需要在你的例外定义路由'/'太多,否则这是抓住了onBeforeAction

尝试重新定义如下

Router.onBeforeAction(function() { 
    if (!Meteor.userId()) { 
     Router.go('login'); 
    } else { 
    this.next(); 
    } 
}, { 
except: [ 
    "default", "login", "landing", "register", "forgotPassword" 
] 
}); 

Router.route('/', function() { 
    Router.go('landing'); 
}, { 
    name: "default" 
}); 

在这种情况下,你的名字的路线,然后你可以将其添加到您的例外清单

请参阅http://iron-meteor.github.io/iron-router/#named-routes

+0

谢谢!有用 ! – Adrien

相关问题