我们的应用程序中的路由可以正常用于正常的URL或路由参数。但是一旦使用查询参数,路由似乎就会中断。提供查询参数后,ActivatedRoute
突然没有可用的网址,queryParams
和queryParamMap
都是空的(尽管显然有可用的查询参数)。
我在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
});
关于可能出现问题的任何想法都会有所帮助。