提供查询参数时激活的路由缺失数据

时间:2018-03-24 15:35:26

标签: angular routing

我们的应用程序中的路由可以正常用于正常的URL或路由参数。但是一旦使用查询参数,路由似乎就会中断。提供查询参数后,ActivatedRoute突然没有可用的网址,queryParamsqueryParamMap都是空的(尽管显然有可用的查询参数)。

我在Github上看到了这个bug,但它似乎并不适用,因为即使订阅queryParams observable也从未产生实际值。

路由配置如下:

{ path: 'fileManager', component: FileManagementComponent }

以下列方式将页面路由到:

<a [routerLink]="/fileManager" [queryParams]="{ folderPath: 'MyFolder' }">

我们拦截NavigationEnd事件,然后使用ActivatedRoute进行其他配置(为当前组件设置制表符控件)。奇怪的是,NavigationEnd事件参数具有正确的URL,但ActivatedRoute没有。

例如:

this.router.events.filter(e => e instanceof NavigationEnd).subscribe(e => 
{
    let a = this.activatedRoute;
    let b = a.snapshot;
    //Here e has the correct url, including query params
    //but b has a blank url and empty query params
});

关于可能出现问题的任何想法都会有所帮助。

0 个答案:

没有答案