【发布时间】:2019-03-01 07:03:12
【问题描述】:
我的导航栏上有一个按钮。当点击时,我想要根据用户当前使用的 URI 的不同行为。
假设我有这个 URI localhost:8080/entity/{entityId}
如何在 Angular 5 中将 URI 的第一部分 entity 作为字符串获取。
【问题讨论】:
标签: angular url path uri string-parsing
我的导航栏上有一个按钮。当点击时,我想要根据用户当前使用的 URI 的不同行为。
假设我有这个 URI localhost:8080/entity/{entityId}
如何在 Angular 5 中将 URI 的第一部分 entity 作为字符串获取。
【问题讨论】:
标签: angular url path uri string-parsing
好的,我从 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}
【讨论】:
首先你必须从 Angular 导入 ActivatedRoute =>
import { ActivatedRoute } from '@angular/router';
接下来在你的组件构造函数中注入activatedRoute =>
constructor(private activatedRoute: ActivatedRoute) {}
现在你可以访问你孩子的路线了,这个控制台日志会输出一个孩子的数组。
ngOnInit() {
console.log(this.activatedRoute.routeConfig.children);
}
您可以通过 ActivatedRoute 获得很多关于您的 url 的信息。 https://angular.io/api/router/ActivatedRoute
【讨论】:
你可以在'/'的基础上拆分当前的url,它将url转换成一个数组,你可以得到你想要的任何部分。 见下面的代码sn-p:
url =window.location.href;
console.log(this.url.split('/')[1]);
【讨论】: