У меня есть этот код:
onSubmit(search: string, from: string, to: string) {
this.router.navigate(['/recherche'], {
queryParams: {
search: search,
from: from,
to: to
}
});
}
И этот вид:
<form ngNoForm>
<div class="row">
<div class="col-11">
<input #search id="search" name="search" class="form-control form-control-lg w-100" type="text" />
</div>
<div class="col-1">
<button (click)="onSubmit(search.value, from.value, to.value);" class="btn btn-lg btn-black" type="submit"><i class="fa fa-search"></i></button>
</div>
</div>
Вот как я получаю параметры на странице результатов:
constructor(
private route: ActivatedRoute,
private eventService: EventService,
private locationService: LocationService,
) {});
}
ngOnInit() {
// Subscribe to query parameters
this.route.queryParamMap.subscribe(queryParams => {
// Retreive the parameters
let search = queryParams.get('search').trim();
let from = queryParams.get('from');
let to = queryParams.get('to');
// List the events
this.listEvents(search, from, to);
// List the locations
this.listLocations(search);
});
}
При первом поиске все идет хорошо. Если я выполнил второй поиск, приложение полностью перезагрузилось. Чего мне не хватает?
Кодовая часть модуля маршрутизации:
{
path: 'recherche',
component: SearchComponent
},
Если быть более точным , приложение перезагружается только тогда, когда я нахожусь на пути /recherche
. Если я перейду на другой маршрутизатор, прежде чем выполнить второй поиск, он сработает.