我正在使用最新的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
答案 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[]
的第一个元素),这意味着路径为''
。