0

语境

我有一个基本的管理页面,它有两个实现,具体取决于服务器中的参数。

这是我用于路由器的配置:

      {
        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 时barProjectsBModule根本不加载,也没有错误消息。

我的猜测是,这是因为两条路线根本不可能有相同的路径,但是我们有办法正确实现这种行为吗?正确地说,我的意思是不在*ngIf容器组件中使用 a 来根据插件的值显示一个组件或另一个组件。

4

0 回答 0