【问题标题】:Unable to fetch query params in Angular4无法在 Angular4 中获取查询参数
【发布时间】:2018-05-08 10:49:27
【问题描述】:

我正在使用primeng 库开发一个Angular4 应用程序。在我的一个组件中,我有以下代码:

  navigateUrl(company:any, cause?:boolean) {
    let navigationExtras = {queryParams : {cause: false}};
    let navigateToUrl = '/home/policy/menu/' +
    company.policyId+ '/' + encodeURIComponent(company.name) + '/' +
    company.companyId + '/branches';
    if(cause) {
      let navigationExtras = {queryParams : {cause: true}};
    }
    this.router.navigateByUrl(navigateToUrl, navigationExtras);
  }

我正在尝试在即将到来的菜单组件中获取这些查询参数,例如:

this.route.queryParams.subscribe(params => {
      console.log(params);
});

我也试过了

this.route.queryParams['cause'];

但无论我尝试什么,我总是得到一个用于查询参数的空白地图。 谁能指出我哪里出错了。

【问题讨论】:

  • 为什么是navigateByUrl?为什么不只是navigate

标签: angular navigation angular4-router queryparam


【解决方案1】:

试试

this.router.navigate(['/home/policy/menu/'], navigationExtras); 而不是this.router.navigateByUrl(navigateToUrl, navigationExtras);

或者试试这个

this.router.navigateByUrl(navigateToUrl, navigationExtras.queryParams);

但是你应该提供验证路由名称,所以你需要检查/home/policy/menu/是一个有效的路由名称。

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2021-01-17
    • 2016-06-24
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    相关资源
    最近更新 更多