Anda dapat menavigasi ke rute saat ini dengan parameter kueri baru, yang tidak akan memuat ulang halaman Anda, tetapi akan memperbarui parameter kueri.
Sesuatu seperti (dalam komponen):
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
});
}
Perhatikan, meskipun tidak memuat ulang halaman, ini akan mendorong entri baru ke riwayat browser. Jika Anda ingin menggantinya dalam sejarah daripada menambahkan nilai baru di sana, Anda bisa menggunakan { queryParams: queryParams, replaceUrl: true }
.
EDIT: Seperti yang sudah ditunjukkan di komentar, []
dan relativeTo
properti hilang dalam contoh asli saya, jadi itu bisa mengubah rute juga, bukan hanya parameter kueri. Penggunaan yang tepat this.router.navigate
dalam hal ini:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Mengatur nilai parameter baru menjadi null
akan menghapus parameter dari URL.
[]
alih-alih['.']
membuatnya berfungsi