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