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