Angular 路由器查询参数处理:'preserve' 不工作
Angular router queryParamsHandling: 'preserve' not working
我正在使用以下 navigate
调用:
this.router.navigate([''], { queryParamsHandling: 'preserve' });
当我使用 /?timeout=true 调用我的应用程序时,queryParams 被删除。
如果我使用我的手动解析传递它们,它会起作用:
const url = window.location.href;
const params = url.indexOf('?') !== -1 ? url.slice(url.indexOf('?') + 1)
.split('&')
// tslint:disable:no-any
.reduce((params: any, param) => {
const [key, value] = param.split('=');
params[key] = value ? decodeURIComponent(value.replace(/\+/g, ' ')) : '';
return params;
}, {}) : {};
this.router.navigate([''], params);
我在这里错过了什么?
它被一个我不认识的 Navigation Guard 覆盖了。现在通过更改初始导航的完成方式修复它,在它之前放一个 QueryParamService
我写的。
我正在使用以下 navigate
调用:
this.router.navigate([''], { queryParamsHandling: 'preserve' });
当我使用 /?timeout=true 调用我的应用程序时,queryParams 被删除。 如果我使用我的手动解析传递它们,它会起作用:
const url = window.location.href;
const params = url.indexOf('?') !== -1 ? url.slice(url.indexOf('?') + 1)
.split('&')
// tslint:disable:no-any
.reduce((params: any, param) => {
const [key, value] = param.split('=');
params[key] = value ? decodeURIComponent(value.replace(/\+/g, ' ')) : '';
return params;
}, {}) : {};
this.router.navigate([''], params);
我在这里错过了什么?
它被一个我不认识的 Navigation Guard 覆盖了。现在通过更改初始导航的完成方式修复它,在它之前放一个 QueryParamService
我写的。