【问题标题】:Culture route parameter in AngularAngular中的文化路线参数
【发布时间】:2020-05-16 18:55:44
【问题描述】:

我有一个有角度的网站。在所有路线中,我都有一个文化路线参数,称为 :culture。所以 URL 看起来像:

 http://domain.eu/en/start
 http://domain.eu/nl/start

现在,当用户访问该站点时,他可以使用外部提供商(通过 Identity Server)登录,并且在成功登录后,他将被重定向回站点的根目录:http://domain.eu

我遇到的问题是我想根据保存在用户配置文件设置中的文化重定向到正确的起始页。例如,用户 X 登录并使用荷兰语作为他的默认语言。

在我的 app-routing.module.ts 我有:

 const appRoutes: Routes = [
   {
     path: '',
     redirectTo: 'en/start',
     pathMatch: 'full',
    },
 ];

...我想知道如何重定向到正确的文化而不是硬编码的“en/start”。我可以使用变量来构造重定向路径或类似的东西吗?

【问题讨论】:

    标签: angular typescript routes localization


    【解决方案1】:

    您可以为此使用路由参数。请参阅下面的示例。

    const appRoutes: Routes = [
           {
             path: '',
             redirectTo: ':culture/start',
             pathMatch: 'full',
            },
         ];
    

    设置好路由参数后,像往常一样重定向即可。

    See documentation for details

    【讨论】:

      【解决方案2】:

      您可以将路径:'' 连接到 MyRedirectComponent:

      ngOnInit() {
         const locale = 'en'; // TODO your logic
         this.router.navigate(['/' locale + '/start']);    
      }
      

      【讨论】:

        【解决方案3】:

        我会使用 Guard 并使用 router.navigate 导航到路由

        【讨论】:

          猜你喜欢
          • 2018-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-07
          • 1970-01-01
          • 1970-01-01
          • 2017-09-01
          相关资源
          最近更新 更多