【问题标题】:How to get Query Parameters in the Angular component如何在 Angular 组件中获取查询参数
【发布时间】:2018-03-20 16:29:03
【问题描述】:

我遵循了这个答案:How to get query params from url in Angular 2?,但不确定他们如何通过输入http://localhost:4200?test=hi 进行测试。请提供建议 - 这对我不起作用。

我有一个AppComponent 和一个路由到OrderComponent 的路由器。我需要从AppComponent 中的URL 中获取查询参数并将其传递给OrderComponent

【问题讨论】:

  • 您是否遵循所有答案。没有一个答案有效?

标签: angular url-parameters


【解决方案1】:

在组件类的 ngOnInit 方法中,您可以执行以下操作:

  constructor(private route: ActivatedRoute){}

  ngOnInit(){
      this.route.queryParamMap
                .map((params: Params) => params.params)
                .subscribe( (params) => {
                     if(params && params['test']){
                        let testQueryParamVal = params['test'];
                     }
                 });
  }

【讨论】:

  • 是的,这行得通 this.route.paramMap.subscribe(map => console.log("map",map.get("ordertype")));但是我可以使用localhost:4200/OrderMgmtComponent/red 的 URL 进行测试,当我像下面这样给出时,它显示错误 localhost:4200/OrderMgmtComponent?ordertype="red" 错误:错误错误:未捕获(承诺中):错误:无法匹配任何路由。URL 段:'OrderMgmtComponent' 错误: 无法匹配任何路由。URL 段:'OrderMgmtComponent' 知道为什么会显示错误吗?
  • 您收到此错误是因为您尚未仅使用 OrderMgmtComponent 定义该路由。请注意,角度route paramsroute query params 是两个不同的东西。
  • 请查看此链接 github.com/angular/angular-cli/issues/6410 这表示我们无法使用 localhost:4200?a=b 测试 URL
猜你喜欢
  • 2018-11-10
  • 1970-01-01
  • 2018-05-07
  • 2016-06-11
  • 2018-05-29
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多