使用Router服务的createUrlTree和serializeUrl方法,结合ActivatedRoute服务来获取所需路由信息,最终拼接成完整的URL。示例代码如下:
import { Component } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { UrlSegmentGroup, UrlTree, UrlSegment } from '@angular/router';
@Component({
selector: 'app-root',
template: `
{{ url }}
`
})
export class AppComponent {
url: string;
constructor(private router: Router, private route: ActivatedRoute) {
const tree: UrlTree = this.router.createUrlTree([], {relativeTo: this.route});
const group: UrlSegmentGroup = tree.root.children['primary'];
const segments: UrlSegment[] = group.segments;
this.url = segments.map(s => s.path).join('/');
this.url = `/${this.url}`;
}
}