如何在Angular 6中创建一个从URL返回queryParams的方法?

时间:2019-01-19 14:35:20

标签: angular typescript

这是我的代码。还有其他更好或最好的方法来从url获取queryParams吗?

  getSolutionId(){
    let solutionId: number;
    this.activatedRoute.queryParams.subscribe((queryParams) => {
      solutionId = queryParams.solutionId ? queryParams.solutionId: null;
    });
    return solutionId;
  }

4 个答案:

答案 0 :(得分:1)

您使用路由器快照:

getSolutionId() {
   return this.activatedRoute.snapshot.queryParamMap.solutionId;
}

https://angular.io/api/router/ActivatedRouteSnapshot#queryParamMap

答案 1 :(得分:1)

this comment已经回答了这个问题,该参考文献还引用了the Angular docs,描述了如何实现此目标。

答案 2 :(得分:0)

您可以执行以下操作:

this.activatedRoute.queryParams.subscribe((params: Params) => {
      this.param = params['name'];

    }).unsubscribe();
  }

这是区分大小写

答案 3 :(得分:-1)

我不确定您要获取查询参数的要求是什么。

假设您正在尝试创建一些全局方法来获取queryParams(如果有)。您可以像这样在每个路由器更改上调用方法-

this.router.events.subscribe(route => {
    this.activatedRoute.queryParams.subscribe((queryParams) => {
      solutionId = queryParams.solutionId || null;
    });
});