小编Ken*_*oen的帖子

Angular 4路由:是否可以向路由参数添加约束?

我想为我的路由服务中的语言进行匹配。我的问题是,该语言必须先行。

例如:

/ zh / xxx

/ fr / xxx

/ en / yyy

/ fr / yyy

由于我想使用此参数,因此我添加了以下路线

{ path: ':lang',  children: [
      {path: '', redirectTo: 'xxx', pathMatch: 'full'},
      {path: 'xxx', component: x},
      {path: 'yyy', component: y}
]}
Run Code Online (Sandbox Code Playgroud)

问题是,所有内容都匹配:lang。

例如:

/ abc / xxx

我想对此添加约束,以便可以说:lang只能是<'nl'|类型。'fr'| 'en'| 'de'>。

现在,当我想转到/robots.txt(应该向我显示robots.txt文件)时,它映射到:lang并将我发送到“ /robots.txt/xxx”

我尝试过分别映射每种语言,但随后我无法访问route参数。

我曾尝试在上面添加robots.txt,但由于它是资产文件,所以我不知道如何通过在route.ts文件中添加一行来显示它。

我尝试在路由防护中添加一个异常,但由于它仅保留在:lang参数上的映射,因此我无法重定向至robots.txt。

这是我当前的routes.ts文件:

{path: '', redirectTo: '/xxx', pathMatch: 'full', canActivate: [LangGuard]},
{path: 'xxx', component: xxx, canActivate: [LangGuard]},
{path: 'yyy', component: yyy, canActivate: [LangGuard]},
{ path: ':lang', canActivate: [LangGuard], children: …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular

5
推荐指数
1
解决办法
587
查看次数

标签 统计

angular ×1

angular-routing ×1