Angular2:如何从路由器检索路径数组?
Angular2: how to retrieve path array from Router?
你知道如果你想转到另一个页面可以使用下面的代码吗?
this.router.navigate(['section1', 'section1-children', 'my-page']);
这里大家知道,array
中的每一个string
都是加载相关组件的模块的路由文件中声明的路径
现在,如果我要在其中使用 navigate
方法的组件与路由路径无关,如何检索与完整当前路径对应的字符串数组?
我想要如下代码:
let path:Array<string> = this.router.getCurrentArray();
path.push('my-page');
this.router.navigate(path);
我曾尝试使用 ActivatedRoute
服务,但我发现唯一有用的方法如下:
this.activatedRoute.pathFromRoot;
returns 一个路由数组,而不是字符串。
你知道达到我的目的的更好方法吗?
您可以使用
this.router.navigate('../' + path);
来自
的条目之一
path = this.router.config[x].path;
您应该可以通过
获得完整路径
this.router.routerState.snapshot.url
这仅适用于 Router
注入到路由器为此路由添加的组件中的实例。
总结自@Günter Zö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);
}
你知道如果你想转到另一个页面可以使用下面的代码吗?
this.router.navigate(['section1', 'section1-children', 'my-page']);
这里大家知道,array
中的每一个string
都是加载相关组件的模块的路由文件中声明的路径
现在,如果我要在其中使用 navigate
方法的组件与路由路径无关,如何检索与完整当前路径对应的字符串数组?
我想要如下代码:
let path:Array<string> = this.router.getCurrentArray();
path.push('my-page');
this.router.navigate(path);
我曾尝试使用 ActivatedRoute
服务,但我发现唯一有用的方法如下:
this.activatedRoute.pathFromRoot;
returns 一个路由数组,而不是字符串。
你知道达到我的目的的更好方法吗?
您可以使用
this.router.navigate('../' + path);
来自
的条目之一path = this.router.config[x].path;
您应该可以通过
获得完整路径this.router.routerState.snapshot.url
这仅适用于 Router
注入到路由器为此路由添加的组件中的实例。
总结自@Günter Zö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);
}