คุณสามารถนำทางไปยังเส้นทางปัจจุบันด้วยพารามิเตอร์การสืบค้นใหม่ซึ่งจะไม่โหลดหน้าเว็บของคุณซ้ำ แต่จะอัปเดตพารามิเตอร์การสืบค้น
สิ่งที่ต้องการ (ในส่วนประกอบ):
constructor(private router: Router) { }
public myMethodChangingQueryParams() {
const queryParams: Params = { myParam: 'myNewValue' };
this.router.navigate(
[],
{
relativeTo: activatedRoute,
queryParams: queryParams,
queryParamsHandling: 'merge', // remove to replace all query params by provided
});
}
โปรดทราบว่าแม้ว่าจะไม่โหลดหน้าซ้ำ แต่ก็จะดันรายการใหม่ไปยังประวัติของเบราว์เซอร์ { queryParams: queryParams, replaceUrl: true }
หากคุณต้องการที่จะแทนที่ในประวัติศาสตร์แทนการเพิ่มค่าใหม่มีคุณสามารถใช้
แก้ไข: ตามที่ระบุไว้แล้วในความคิดเห็น[]
และrelativeTo
คุณสมบัติขาดหายไปในตัวอย่างเดิมของฉันดังนั้นจึงอาจเปลี่ยนเส้นทางได้เช่นกันไม่ใช่แค่พารามิเตอร์การสืบค้น การthis.router.navigate
ใช้งานที่เหมาะสมจะอยู่ในกรณีนี้:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
การตั้งค่าพารามิเตอร์ใหม่เป็นnull
จะลบพารามิเตอร์ออกจาก URL
[]
แทน['.']
เพื่อให้มันใช้งานได้