У меня возникла проблема с обработкой параметров запроса в моем угловом приложении. У меня есть несколько параметров запроса на моей странице поиска. Ниже указан адрес
/search?q=hyderbard&view=map&type=bat&brand=sg
const urlParams = Observable.combineLatest(
this.route.params,
this.route.queryParams,
(params, queryParams) => ({ ...params, ...queryParams })
);
urlParams.subscribe(routeParams => {
routeParams.q !== undefined ? (this.q = routeParams.q): (this.q = "Bangalore");
routeParams.type !== undefined ? (this.type = routeParams.type): (this.type = "All");
routeParams.view !== undefined ? (this.view = routeParams.view): (this.type = "list");
// this will call search api
this.getList();
});
Это мой код, поэтому всякий раз, когда параметры запроса изменяются, вызывается getList.
Я не хочу, чтобы getList вызывался при обновлении параметра запроса просмотра. Как это сделать? Может ли кто-нибудь помочь





urlParams.pipe(
tap((routeParams) => {
routeParams.q !== undefined ? (this.q = routeParams.q): (this.q = "Bangalore");
routeParams.type !== undefined ? (this.type = routeParams.type): (this.type = "All");
routeParams.view !== undefined ? (this.view = routeParams.view): (this.type = "list");
}),
map((routeParams) => {
const {view, ...rest} = routeParams;
return rest;
}),
distinctUntilChanged((prevParams, curParams) => JSON.stringify(prevParams) === JSON.stringify(curParams))
).subscribe(() => {
this.getList();
});
должен сделать это
что значит не работает? он показывает какие-либо ошибки или ведет себя неправильно?
нет ошибки, но this.getList() вызывается при обновлении представления
сохранить значение и сравнить его?