我正在使用最新的 Angular5 版本。我有以下编码路线(请注意,水果和蔬菜不是参数:
/fruits/item
/veggies/basket
请注意,fruits 是父路由,我在数组中有多个子路由(item 只是其中之一)。 “蔬菜”也是一条父路线。 “篮子”是蔬菜路线下数组中的“子路线”之一。
我如何使用“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
ActivatedRoute
提供了一个会员pathFromRoot
它可以让开发人员从 root 获取完整的 activedroutes,请参阅到文档 https://angular.io/api/router/ActivatedRoute#members.
对于您的情况,您可以使用以下代码块来实现它:
this.activatedRoute.pathFromRoot[1].url.subscribe(val => console.log(val[0].path));
提到目前的结果pathFromRoot
包含一个空路由(第一个元素ActivatedRoute[]
) 这意味着路径''
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)