Angular 如何使用HttpInterceptor修改角度导航,如http请求?

Angular 如何使用HttpInterceptor修改角度导航,如http请求?,angular,angular2-routing,Angular,Angular2 Routing,我的目标: 我想和你一起导航 route.navigation(['path','to'])) 及 我使用global filter存储在NgRx中的内容,并始终将其放入URL查询中,以便在向打开站点的另一个用户发送链接时自动激活URL查询中的筛选设置 比如:“/path/to?timeframe=1576652167_157662167” 我的问题: 如果我使用或导航()方法导航,并且此导航路径使用任何处理程序重新定义所有导航的URL查询,而不重定向,该如何解决这个问题 当然:我不想使用

我的目标:

我想和你一起导航

route.navigation(['path','to']))


我使用
global filter
存储在
NgRx
中的内容,并始终将其放入URL查询中,以便在向打开站点的另一个用户发送链接时自动激活URL查询中的筛选设置

比如:“/path/to?timeframe=1576652167_157662167”

我的问题:

如果我使用
导航()
方法导航,并且此导航路径使用
任何处理程序
重新定义所有导航的URL查询,而不重定向,该如何解决这个问题

当然:我不想使用
[queryParams]
,因为它必须一直写入并传递查询数据

请参见:
HttpInterceptor
。这里我们可以修改HTTP请求。例如
标题
。是否有类似于导航的功能?

我的第一次尝试:

const routes:routes=[
{
路径:“foo”,
// ...
},
{
路径:'bar',
// ...
}
];
@NGD模块({
导入:[RouterModule.forRoot(路由,{useHash:true})],
导出:[路由模块]
})
导出类批准模块{
}
@Injectable({providedIn:'root'})
导出类筛选器服务{
构造函数(专用路由器:路由器){
}
/**
*@说明
*过滤
*
*@param命令any[]
*@param extras NavigationExtras
*/
twf(
命令:任意[],
附加:NavigationExtras={}
):字符串{
让过滤器=“”;
Object.keys(this.global).forEach(key=>{
filter+=filter==''(key+'='+此.global[key]):('&'+key+'='+此.global[key]);
});
返回“#”+this.router.createUrlTree(命令、附加命令).toString()+“?”+过滤器;
}
}
导出类组件{
构造函数(专用筛选器:FilterService,专用路由:ActivatedRoute){
//输出:{xxx:“aaa”,yyy:“10”}
console.log(route.snapshot.queryParams);
}
}