我的导航栏上有一个按钮。单击时,我想要不同的行为,具体取决于用户当前所在的 URI。
假设我有这个 URIlocalhost:8080/entity/{entityId}
我怎样才能得到entity
URI 的第一部分,作为 Angular 5 中的字符串。
好的,我从 Angular 的文档中找到了答案,您必须使用 UrlSegment Angular 类从@angular/router
中解析段中的 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 导入 Activated Route =>
import { ActivatedRoute } from '@angular/router';
下一个在组件构造函数中注入激活路由 =>
constructor(private activatedRoute: ActivatedRoute) {}
现在您可以访问孩子的路线,此控制台日志将输出一个子级数组。
ngOnInit() {
console.log(this.activatedRoute.routeConfig.children);
}
您可以通过激活路由获取有关您的网址的大量信息。 https://angular.io/api/router/ActivatedRoute
您可以在"/"的基础上拆分当前 url,它会将 url 转换为数组,您可以获得所需的任何部分。 请参阅下面的代码片段:
url =window.location.href;
console.log(this.url.split('/')[1]);