如何在Angular 2中

时间:2018-04-16 13:35:01

标签: angular url routing

我有一个类组件,它有两个子组件叫做学生和统计数据。我现在为他们配置了这些路线:

const routes: Routes = [
  {
    path: '', component: ClassComponent, children: [
      { path: 'students', component: StudentsComponent },
      { path: 'stats', component: StatsComponent }
    ]
  }
];

班级本身就是另一个叫做学校的组成部分的孩子。

现在路线在这个级别上工作正常。也就是说,当浏览器URL更改为domain.com/class/students时,我会收到学生组件,当它更改为domain.com/class/stats时,我会获得统计信息组件。

但是,现在我需要将classId作为参数传递给上述路由。我在这一点上陷入困​​境,因为我不知道如何在路线中包含该参数。任何帮助表示赞赏。

更新:我知道我可以拥有/class/students/1/class/stats/1路由。我想要的是让它们像这样:/class/1/students/class/1/stats并且只在类组件中定义它们,而不是在子组件中定义它们,并在父组件和子组件中访问它们。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

{路径:"学生/:id",组件:StudentsComponent}

然后你会在网址中找到一个ID。在学生组件中(或者可能是不同的组件 - 例如,StudentsDetailsComponent,您需要从ActiveRouter服务获取它。

组件的构造函数:

constructor(
  private route: ActivatedRoute

) {}

然后在代码中:

  let id = this.route.snapshot.paramMap.get('id');

点击此链接https://angular.io/guide/router