Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将onBeforeAction仅与使用Meteor的铁路由器的一组路由匹配_Meteor_Iron Router - Fatal编程技术网

将onBeforeAction仅与使用Meteor的铁路由器的一组路由匹配

将onBeforeAction仅与使用Meteor的铁路由器的一组路由匹配,meteor,iron-router,Meteor,Iron Router,使用Meteor的Iron Router,我知道在定义onBeforeAction时,我可以使用参数'only'或'Exception'来匹配命名路由器,如指南中的示例: Router.onBeforeAction(myAdminHookFunction, { only: ['admin'] }); 想象一下,我有很多视图在操作之前不需要它,比如公共页面,还有很多视图需要它,比如管理面板。有没有办法将此onBeforeAction应用于一组没有明确列出每个路由的路由?我的意思是,例如,应用

使用Meteor的Iron Router,我知道在定义onBeforeAction时,我可以使用参数'only'或'Exception'来匹配命名路由器,如指南中的示例:

Router.onBeforeAction(myAdminHookFunction, {
  only: ['admin']
});
想象一下,我有很多视图在操作之前不需要它,比如公共页面,还有很多视图需要它,比如管理面板。有没有办法将此onBeforeAction应用于一组没有明确列出每个路由的路由?我的意思是,例如,应用于以“/admin”开头的所有路由,类似于:

only: ['/admin/*']
Router.route('/admin/', {
    name: 'admin',
    onBeforeAction: function() {},
    routes: [
        {name: 'users', path: '/admin/users', action: function() {}},
        {name: 'posts', path: '/admin/posts', action: function() {}}
    ]
})
或者将onBeforeAction应用于父路由,然后定义嵌套路由?(我找不到Iron Route是否支持嵌套路由),例如:

only: ['/admin/*']
Router.route('/admin/', {
    name: 'admin',
    onBeforeAction: function() {},
    routes: [
        {name: 'users', path: '/admin/users', action: function() {}},
        {name: 'posts', path: '/admin/posts', action: function() {}}
    ]
})

我建议创建一个。创建一个“基本”控制器,并根据需要扩展它。

在我的应用程序中,我有一个匿名控制器,用于处理未登录的用户。一个经过身份验证的控制器在此基础上处理登录用户,最后是一个管理控制器,处理根据定义必须登录的管理员用户。@MichelFloyd如果您使用
alanning:roles
包,只需检查他们是否经过授权,您可能需要查看一个非常基本的感谢@Oskar。我只是提供了一个分层红外控制器的简单示例。