Как проверить каждый параметр запроса отдельно в angular 6

У меня возникла проблема с обработкой параметров запроса в моем угловом приложении. У меня есть несколько параметров запроса на моей странице поиска. Ниже указан адрес

/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 вызывался при обновлении параметра запроса просмотра. Как это сделать? Может ли кто-нибудь помочь


person Vijay    schedule 22.03.2019    source источник
comment
сохранить значение и сравнить его?   -  person Markus Dresch    schedule 22.03.2019


Ответы (1)


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();
});

должен сделать это

person Andrei    schedule 22.03.2019
comment
что значит не работает? он показывает какие-либо ошибки или ведет себя неправильно? - person Andrei; 22.03.2019
comment
нет ошибки, но this.getList() вызывается при обновлении представления - person Vijay; 22.03.2019