我在我的流星应用程序中使用Iron-Route进行路由。由于我有多个模块,并且我想避免多重编码,因此我将过滤器用于验证(角色)到核心包:
核心软件包
var filters = {
authenticate: function () {
var user;
if (Meteor.loggingIn()) {
this.layout('login');
this.render('loading');
} else {
user = Meteor.user();
if (!user) {
this.layout('login');
this.render('signin');
return;
}
this.layout('StandardLayout');
this.next();
}
}
}
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
before: filters.authenticate
});
Router.route('/', function () {
this.render('contentTemplate', { to: 'content' });
this.render('navigationTemplate', { to: 'navigation' },)
});
其他套餐
......只需要这个:
Router.route('/article/:_id', {
name: 'article',
yieldTemplates: {
'navigationPage': { to: 'navigation' },
'contentPage': { to: 'content' }
}
});
现在在显示任何内容之前检查每个模块(路线)。
但我首页需要一个例外。主页Route.route('/')
也应该由未登录的用户访问。我该怎么做?
答案 0 :(得分:1)
您可以使用$('.checkboxstyle').on("change",function ()
{
var str ="";
$('.checkboxstyle:checked').each(function()
{
str+= $(this).val()+" ";
});
$('#CD_Supplr').val(str);
});
中的onBeforeAction
挂钩,如下所示。
此解决方案假定您的登录路由名为iron:router
。但可以修改以满足您的需求。
<强> ./客户/ LIB / hoooks / router.js 强>
'login'
注意:将“homeRouteName”替换为Router.onBeforeAction(function () {
// all properties available in the route function
// are also available here such as this.params
if (!Meteor.userId()) {
//code for action to be taken when user is not logged in
this.redirect('login');
this.stop();
} else {
this.next();
}
},{except: ['homeRouteName'] });