您知道如果要转到其他页面,可以使用以下代码吗?
this.router.navigate(['section1', 'section1-children', 'my-page']);
如您所知,string
中的每个array
都是在加载相关组件的模块的路由文件中声明的路径。
现在,如果我想要使用navigate
方法的组件与路由路径无关,那么如何检索对应于完整当前路径的字符串数组?
我想拥有以下代码:
let path:Array<string> = this.router.getCurrentArray();
path.push('my-page');
this.router.navigate(path);
我尝试使用ActivatedRoute
服务,但我找到的唯一有用的方法如下:
this.activatedRoute.pathFromRoot;
返回Route数组,而不是字符串。
你知道更好的方法达到我的目的吗?
答案 0 :(得分:2)
您可以使用
this.router.navigate('../' + path);
使用
中的一个条目path = this.router.config[x].path;
你应该能够通过
获得完整的路径this.router.routerState.snapshot.url
这仅适用于路由器为此路由添加的组件中注入的Router
个实例。
答案 1 :(得分:0)
摘自@GünterZöchbauer评论:
constructor(private router: Router) {
let tree: UrlTree = this.router.parseUrl(this.router.routerState.snapshot.url);
let g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];
let s: UrlSegment[] = g.segments;
return s.map(a => a.path);
}