您如何在Angular 5中获得URI的第一部分?

时间:2018-09-25 15:31:07

标签: angular url path uri string-parsing

导航栏上有一个按钮。单击后,我希望用户根据当前使用的URI采取不同的行为。

假设我有这个URI localhost:8080/entity/{entityId} 如何获得Angular 5中的字符串entity(URI的第一部分)。

3 个答案:

答案 0 :(得分:0)

好吧,我从Angular的文档中找到了答案,您必须使用@angular/router中的UrlSegment Angular类来解析分段中的url。 链接到相关文档:https://angular.io/api/router/UrlSegment

const tree: UrlTree = router.parseUrl('/team;id=33');
const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];
const s: UrlSegment[] = g.segments;
s[0].path; // returns 'team'
s[0].parameters; // returns {id: 33}

答案 1 :(得分:0)

首先,您必须从Angular =>

导入ActivatedRoute。
import { ActivatedRoute } from '@angular/router';

下一步在您的组件构造函数中注入ActivatedRoute =>

constructor(private activatedRoute: ActivatedRoute) {}

现在您可以访问孩子的路线,该控制台日志将输出一系列孩子。

ngOnInit() {
 console.log(this.activatedRoute.routeConfig.children);
}

您可以通过ActivatedRoute获得有关您的网址的很多信息。 https://angular.io/api/router/ActivatedRoute

答案 2 :(得分:0)

我不知道这是否会对任何人有帮助,但是在Angular 8中,我可以使用以下方法在应用程序路由中获取一个名为id:的uri段:

constructor(private route: ActivatedRoute) {
    this.param = this.route.params['_value']['id'];
}