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

How do you get the first part of a URI in Angular 5?

我的导航栏上有一个按钮。单击时,我需要不同的行为,具体取决于用户当前所在的 URI。

假设我有这个 URI localhost:8080/entity/{entityId} 如何获取 URI 的第一部分 entity 作为 Angular 中的字符串 5.

好的,我从 Angular 的文档中找到了答案,您必须使用 @angular/router 中的 UrlSegment Angular class 来解析 url在片段中 link 到相关文档: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}

首先你必须从 Angular 导入 ActivatedRoute =>

import { ActivatedRoute } from '@angular/router';

接下来在您的组件构造函数中注入 activatedRoute =>

constructor(private activatedRoute: ActivatedRoute) {}

现在您可以访问 children 的路由,此控制台日志将输出一个 children 数组。

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

您可以使用 ActivatedRoute 获取有关 url 的大量信息。 https://angular.io/api/router/ActivatedRoute

你可以在'/'的基础上拆分当前的url,它会将url转换成一个数组,你可以得到你想要的任何部分。 请参阅下面的代码片段:

url =window.location.href;

console.log(this.url.split('/')[1]);