无法在Angular4中获取查询参数

时间:2018-05-08 10:49:28

标签: angular navigation angular4-router queryparam

我正在使用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);
  }

我正在尝试在即将推出的菜单组件中获取这些queryParams,如:

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

我也试过

this.route.queryParams['cause'];

但无论我尝试什么,我总是得到查询参数的空白地图。 有人可以指出我哪里出错了。

1 个答案:

答案 0 :(得分:1)

尝试

this.router.navigate(['/home/policy/menu/'], navigationExtras);代替this.router.navigateByUrl(navigateToUrl, navigationExtras);

或试试这个

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

  

但是您应该提供验证路由名称,因此您需要检查/home/policy/menu/是否是有效的路由名称。