首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角度路由数据树

角度路由数据树
EN

Stack Overflow用户
提问于 2019-03-07 12:13:29
回答 1查看 736关注 0票数 0

我需要编写一个从routeConfigs获取对象的组件。就像这样:

代码语言:javascript
运行
复制
route.routeConfig.data['info']

其中route: ActivatedRoute和如下配置的路由:

代码语言:javascript
运行
复制
const routes: Routes =
  [{
    path: 'people', data: { info: 'Parent' },
    children: [
      { path: '', component: Component1, data: { info: 'Child1' } },
      { path: ':id', component: Component1, data: { info: 'Child2' } },
      { path: 'new', component: Component1, data: { info: 'Child3' } }
    ]
  }];

因此,我需要一个函数返回当前路由和每个父路由的配置数据中的对象/字符串列表。对于上面的值,当我通过路由/people/new将我的组件放入组件中时,结果必须是:["Parent", "Child3"]

请帮帮我,万能的万能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 13:15:33

您可以通过注入ActivatedRoute,然后使用this.activatedRoute.snapshot.data来访问当前开通的路由的数据。但是要访问父路由,您需要使用this.activatedRoute.parent.snapshot.data获取当前路由的父路由。由于可能有任意数量的父级,因此您可以递归地遍历树并获取数据。

为您创建示例stackblitz。添加了以下必要的代码:

代码语言:javascript
运行
复制
let activatedRoute = this.activatedRoute;
this.data = [];
while (activatedRoute) {
  console.log(activatedRoute.snapshot.data);
  this.data.push(activatedRoute.snapshot.data);
  activatedRoute = activatedRoute.parent;
}

这将使用路由配置数据中的所有值更新this.data变量。您可以根据需要进行修改。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55035956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档