无法获取Angular4中的查询参数

无法获取Angular4中的查询参数,angular,navigation,angular4-router,queryparam,Angular,Navigation,Angular4 Router,Queryparam,我正在使用Priming库开发Angular4应用程序。在我的一个组件中,我有以下代码: navigateUrl(company:any, cause?:boolean) { let navigationExtras = {queryParams : {cause: false}}; let navigateToUrl = '/home/policy/menu/' + company.policyId+ '/' + encodeURIComponent(company

我正在使用Priming库开发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'];
但是无论我尝试什么,我总是得到一个查询参数的空白映射。 有人能指出我哪里做错了。

试试看

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

或者试试这个

this.router.navigateByUrl(navigateToUrl、navigationExtras.queryParams)

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


为什么要导航?为什么不直接导航呢?