在流星铁路由器中为主路径做一些不同的事情

时间:2015-09-27 13:43:26

标签: javascript meteor iron-router

我在我的流星应用程序中使用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('/')也应该由未登录的用户访问。我该怎么做?

1 个答案:

答案 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'] });

处的路线名称