首页 > 解决方案 > Angular 6 嵌套路由参数

问题描述

我的路由组件中有一个Level:/id路由。我想访问难度 ID。在这种情况下如何使用路由器参数?因为它依赖于首先获取 Level id,然后下移一步到 Settings 属性,最后到 Difficulty id?

所以结构看起来像这样:

Level = {
  id: "some_id",
  name: "some_name",
  Settings: [
    Type: "sometype",
    Difficulty: {
      id: "difficulty_id"
    }
  ]
}

请帮助

标签: angularroutesnested

解决方案


在加载的组件内部Level:/id,您可以将 注入ActivatedRoute作为依赖项。然后你可以subscribeparams它上面的属性来获取当前的参数。

import { ActivatedRoute } from '@angular/router';
...
id;
constructor(..., private route: ActivatedRoute, ...) {}
...

this.route.params.subscribe(params => {
  this.id = params['id'];

  // OR if the id is of type number
  // this.id = +params['id'];
});

推荐阅读