[英]How to set or remove queryParams in current route in angular 2 without reloading page
我有这个当前的路线:
http://localhost:96/#/pages/settings/devices
我想将 queryParams={name:realTime} 设置为此当前路线,例如:
http://localhost:96/#/pages/settings/devices?name=realTime
是否可以在不重新加载页面的情况下向当前路由添加或删除 queryParams?
我得到了解决方案。
这不会重新加载当前页面
let navigationExtra: NavigationExtras = {
relativeTo: this.activatedRoute,
skipLocationChange: false,
queryParams: { name: 'realTime' }
}
this.router.navigate(['./', navigationExtra]);
在不重新加载页面的情况下向当前路由添加或删除 queryParams。
只需更改位置哈希,例如
window.location.hash = "/pages/settings/devices?name=realTime"
我提供的代码可以正常工作。 但是,如果您希望它对您的应用程序的状态产生影响,您应该真正检查路由器上的文档,了解如何使用该哈希更改内联或编写您的效果。
为了在不让路由器执行导航的情况下更新 URL,构建 URL 树并将其设置在当前位置。 不要手动构建 URL。
const url = this
.router
.createUrlTree([{param1: value1, paramN: valueN}], {relativeTo: this.ar})
.toString();
this.location.go(url);
位置被注入到组件构造函数中:
import { DecimalPipe, Location } from '@angular/common';
constructor(private location: Location){}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.