我有一个基本的管理页面,该页面具有两种实现,具体取决于服务器中的参数。
这是我用于路由器的配置:
{
path: 'projects',
loadChildren: 'app/...#ProjectsAModule',
canLoad: [PluginGuard],
data: {
requiredPlugins: ['foo'],
},
},
{
path: 'projects',
loadChildren: 'app/...#ProjectsBModule',
canLoad: [PluginGuard],
data: {
requiredPlugins: ['bar'],
},
},
PluginGuard
是一个简单的防护措施,它调用服务器来检查名为plugin的字段的值。
根据设计,这两个路由不能同时加载,因为插件在给定时间只能有一个值。
问题是仅考虑第一个条目,这意味着当插件的值为foo
时,我可以加载模块ProjectsAModule
,但当插件的值为{{1}时},bar
根本不会加载,也没有错误消息。
我的猜测是,因为两个路由根本不能具有相同的路径,但是我们是否有办法正确实现这种行为?正确地说,我的意思是不要在容器组件中使用ProjectsBModule
来显示一个基于插件值的组件或另一个组件。