Sayfanızı yeniden yüklemeyecek, ancak sorgu parametrelerini güncelleyecek olan yeni sorgu parametreleriyle mevcut rotaya gidebilirsiniz.
(Bileşende) gibi bir şey:
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
});
}
Sayfayı yeniden yüklemeyecek olsa da, tarayıcının geçmişine yeni bir giriş göndereceğini unutmayın. Oraya yeni bir değer eklemek yerine onu geçmişte değiştirmek isterseniz kullanabilirsiniz { queryParams: queryParams, replaceUrl: true }
.
DÜZENLEME: Yorumlarda daha önce belirtildiği gibi []
ve relativeTo
orijinal örneğimde özellik eksikti, bu nedenle sadece sorgu parametrelerini değil, rotayı da değiştirmiş olabilir. this.router.navigate
Bu durumda doğru kullanım:
this.router.navigate(
[],
{
relativeTo: this.activatedRoute,
queryParams: { myParam: 'myNewValue' },
queryParamsHandling: 'merge'
});
Yeni parametre değerinin olarak ayarlanması, parametrenin null
URL'den kaldırılmasına neden olur.
[]
yerine['.']
çalışması için