我们可以动态设置路由路径的名称吗?

时间:2019-06-13 11:34:26

标签: angular routing

我正在用角度创建学校管理系统,我希望动态分配路线路径名称,以便每个学校都有自己的URL进行登录。例如:当超级管理员创建学校时,带有登录链接的邮件将发送给该​​学校的管理员。 (类似于“ xxx.yyy.schools / school1”,xxx.yyy.schools / school2,xxx.yyy.schools / school3)。电子邮件链接将必须像上述示例一样生成,例如学校1、2和3。

我已经在互联网上搜索并找到了解决方案,以通过使用 {path':schoolname',component:SchoolLoginComponent},但这不是我期望的

const appRoutes:路线= [     {路径:“ school1”,组件:LoginComponent},

以上是我尝试过的方法,但路径名设置为静态的“ school1”,在此我希望它以学校的名称动态生成。

我有一个学校创建表格,该表格通过URL链接向学校管理员发送邮件,但这是静态分配的。我希望路由路径名称是动态的,以便学校管理员可以意识到URl只能由他们使用

1 个答案:

答案 0 :(得分:0)

否,您无法动态设置pathname,Angular编译器需要了解您的pathname的AOT。

但是,更好的方法是例如动态设置路径参数

const appRoutes: Routes = [
  {
    path: 'schools/:id',
    component: LoginComponent
  }
]

如果更适合您,可以使用:name代替:id,导航将是这样的

<!-- from HTML -->
<a routerLink="/schools/{{id}}">Crisis School</a>

// from component.ts
this.router.navigate(["schools", id]);

这是一个实际的example,请注意,在此示例中,学校URL为yourdomain/schools/school-name

相关问题