【问题标题】:How do you get the first part of a URI in Angular 5?如何在 Angular 5 中获取 URI 的第一部分?
【发布时间】:2019-03-01 07:03:12
【问题描述】:

我的导航栏上有一个按钮。当点击时,我想要根据用户当前使用的 URI 的不同行为。

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

【问题讨论】:

    标签: angular url path uri string-parsing


    【解决方案1】:

    好的,我从 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}
    

    【讨论】:

      【解决方案2】:

      首先你必须从 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

      【讨论】:

        【解决方案3】:

        你可以在'/'的基础上拆分当前的url,它将url转换成一个数组,你可以得到你想要的任何部分。 见下面的代码sn-p:

        url =window.location.href;
        
        console.log(this.url.split('/')[1]);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-11
          • 1970-01-01
          • 2012-09-27
          • 1970-01-01
          • 2021-03-18
          • 1970-01-01
          相关资源
          最近更新 更多