我有以下路由,只希望执行Router.go('home');成功登录后。
Router.configure({
layoutTemplate: 'Layout'});
Router.map(function(){
this.route('login', {path: '/'});
this.route('home', {path: '/home'});
this.route('posts', {path: '/posts'}); });
我的布局模板包含我不想在登录页面上显示的导航栏。
如何GLOBAllY进行此设置,以便在用户未登录时,页面会重定向“登录”模板?我只想在用户未登录时显示我的登录模板。
提前感谢您的贡献!
答案 0 :(得分:3)
这将呈现' signin'模板本身,换句话说,作为单个页面。
Router.configure({
layoutTemplate: 'master_layout',
loadingTemplate: 'loading',
});
var OnBeforeActions;
OnBeforeActions = {
loginRequired: function(pause) {
if (!Meteor.userId()) {
Router.go('signin');
return pause();
}
}
};
Router.onBeforeAction(OnBeforeActions.loginRequired, {
except: ['signin']
});
Router.map(function() {
this.route('signin',{
path: 'SignIn',
layoutTemplate: 'signin' // override main layout and use 'signin' templatate as main layout
});
this.route('notFound', {
path: '*'
});
});
答案 1 :(得分:0)
Router.configure({
onBeforeAction: function(pause) {
if(!Meteor.userId()) {
this.redirect('login');
}
},
});