【问题标题】:Angular 6 Generate Routes with MappingAngular 6 使用映射生成路由
【发布时间】:2018-12-17 23:52:40
【问题描述】:

我想在 url 上定义网站语言。例如“mysite.com/en/blabla”。但是我对每个客户都有不同的语言。如果客户不支持英语,角度应该返回 404,我试试这个:

const languages:Routes = Object.getOwnPropertyNames(environment.trader.langList).map(path => {
  return {
    path, component: OutComponent,
    children: [
      { path: 'place-bet', loadChildren: '../../desktop/placebet/placebet.module#PlacebetModule' },
      { path: 'games', loadChildren: '../../desktop/games/games.module#GamesModule' },
      { path: 'dashboard', loadChildren: '../../desktop/dashboard/dashboard.module#DashboardModule' }]
  };
})
debugger;

const OutRoutes: Routes = [
  ...languages
];

export const OutRouter = RouterModule.forChild(OutRoutes);

我从环境中获取语言并为每种语言生成路线。这适用于运行时,但是当我编译时,它给出了一个错误:“无法读取未定义的属性'loadChildren'中的错误”。它无法在编译时编译映射路由。我该如何解决?

【问题讨论】:

    标签: javascript angular angular-router angular-cli-v6


    【解决方案1】:

    找到这个:https://medium.com/@gustavopollitzer/thank-you-a-lot-a357e95e43b8

    基本上,它说在@NgModule 声明中只允许静态分配并且不支持函数调用。路由是通过 NgModule 完成的,是吗?

    如果您希望在您的案例中为支持的语言列表提供自定义 URL,为什么不使用自定义路径

    like 路径:':lang/place-bet'

    How to pass a parameter to routerLink that is somewhere inside the URL?

    希望这会有所帮助:)

    【讨论】:

    • 我知道这一点,但我应该为此使用激活器 :( omg 谢谢
    猜你喜欢
    • 2013-05-21
    • 1970-01-01
    • 2023-03-02
    • 2023-03-25
    • 2019-09-11
    • 2019-01-05
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多