如何从ActivatedRoute获取5角度路段?

时间:2018-04-06 02:38:42

标签: angular

我正在使用最新的angular5版本。我有以下编码路线(注意水果和蔬菜不是参数:

/fruits/item
/veggies/basket

请注意,fruits是父路由,我在一个数组中有多个子路由(item只是其中之一)。 'veggies'也是父母路线。 “篮子”是素食路线下阵列中的“儿童路线”之一。

如何使用“ActivatedRoute”,虽然如何访问路线的第一个“水果”或“蔬菜”部分?我想检查它并将其记录到控制台。

假设已激活的路线已经注入变量“route”。

寻找像这样的伪代码(如果它是正确的)

showRouteRoot() {
   console.log(this.route.getFirstSegmentNameInRoute()) 
// expected output is fruits OR veggies. 
// If this can't be done in one line of code, 
// multiple lines is an acceptable answer
}

我试过了:

console.log(this.route.snapshot.url.split('/'));

这会产生问题。

console.log(this.route.url)

这显示了一些AnonymousSubject

console.log(this.route.parent.url)

这显示了一个BehaviorSubject

2 个答案:

答案 0 :(得分:2)

你可以这样做:

let url = this.activatedRoute.snapshot.url.join().split(',')
console.log(url[0]); 

如果要检索父路线,请查看here

答案 1 :(得分:1)

ActivatedRoute提供了一个成员pathFromRoot,可让开发人员从root获取完整的activedroutes,请参阅 DOCS

根据您的情况,您可以使用以下代码块来实现它:

this.activatedRoute.pathFromRoot[1].url.subscribe(val => console.log(val[0].path));

提及当前pathFromRoot的结果包含空路线(ActivatedRoute[]的第一个元素),这意味着路径为''