是否有办法获取具有提供的激活路由的父路由集合?
如果我有一个嵌套路由结构,例如:
[
{
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/