Angular 2 获取父路由

标签 angular angular2-routing

是否有办法获取具有提供的激活路由的父路由集合?

如果我有一个嵌套路由结构,例如:

[
    {
        path: 'search', component: SearchComponent, children:
        [
            {
                path: 'view/:id', component: ViewSearchComponent, children:
                [
                    { path: 'person/:id', component: PersonComponent }
                ]
            },
        ]
    }
]

我的网址将如下所示:/search/view/3/person/5

我怎样才能把它变成某种结构,比如:

[
  { part: 'search' }
  { part: 'view/3' }
  { part: 'person/5' }
]

我查看了 URLTree 和 URLSegments,但看起来它无法区分参数和路径。

最佳答案

您可以运行以下代码,它将返回您想要的相同对象。

  import {ActivatedRoute} from '@angular/router';

  export class Component {

       constructor(private route: ActivatedRoute){
              let pathroots = this.route.pathFromRoot;
              let arr = [];
              pathroots.forEach(path => {
                  let obj: any = {};
                  let pathurl = '';
                  path.url.subscribe(url => {
                       url.forEach(e => {
                          pathurl += e + '/';
                       });
                  });
                  obj['part'] = pathurl;
                  arr.push(obj);
             });
             console.log(arr,'*******************');
           }

 }

关于Angular 2 获取父路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41248923/

相关文章:

Angular:使用带有多个模板变量的异步管道的 NgIf 的正确语法?

angular - 在 Angular2 中使用父组件的模板

Angular 2 : Reloading routed module not fetching js and css files

javascript - Angular 2执行登录身份验证(我进入无限循环。)

javascript - Angular 2 路由器 : route everything behind a certain route

angular - 直接链接到 Angular 4 中的子路由

javascript - Keycloak - 如何禁用两个(Angular)客户端应用程序之间的共享 session ?

angular - 有条件地禁用 Angular 中的路由器链接

angular - 对同一端点执行多个 Http 请求,合并和排序响应

angular - 异常 : Uncaught (in promise): Error: Cannot find module 'app/home/home.module'