Naz*_*iuk 26 javascript typescript angular
如何从URL中删除查询参数.例如来自www.expample.com/home?id=123&pos=sd&sd=iiimakewww.expample.com/home?id=123&sd=iii
编辑:我的版本
this.activatedRoute.queryParams.subscribe(c => {
const params = Object.assign({}, c);
delete params.dapp;
this.router.navigate([], { relativeTo: this.activatedRoute, queryParams: params });
}).unsubscribe();
Run Code Online (Sandbox Code Playgroud)
epe*_*elc 44
您可以使用merge选项删除查询参数,queryParamsHandling并null为要删除的任何参数传入.
// Remove query params
this.router.navigate([], {
queryParams: {
yourParamName: null,
youCanRemoveMultiple: null,
},
queryParamsHandling: 'merge'
})
Run Code Online (Sandbox Code Playgroud)
此选项更简单,需要更少的工作,以确保您不删除其他参数.在销毁组件时,您也不必担心清理可观察的订阅.
vin*_*nce 12
不幸的是,目前没有明确的方法:https://github.com/angular/angular/issues/18011.但是,正如jasonaden评论链接线程,
这可以通过合并旧的和新的查询参数手动完成,删除您不想要的密钥.
这是一种方法:
假设您将queryParams存储在某些属性中.
class MyComponent() {
id: string;
pos: string;
sd: string;
constructor(private route: ActivatedRoute, private router: Router) {}
ngOnInit() {
this.route.url.subscribe(next => {
const paramMap = next.queryParamMap;
this.id = paramMap.get('id');
this.pos = paramMap.get('pos');
this.sd = paramMap.get('sd');
});
}
}
Run Code Online (Sandbox Code Playgroud)
清除pos参数的方法如下所示:
clearPosParam() {
this.router.navigate(
['.'],
{ relativeTo: this.route, queryParams: { id: this.id, sd: this.sd } }
);
}
Run Code Online (Sandbox Code Playgroud)
这将有效导航到当前路由并清除您的pos查询参数,使您的其他查询参数保持不变.
| 归档时间: |
|
| 查看次数: |
19256 次 |
| 最近记录: |