Реализация маршрутизации Resolver с зависимым http-запросом - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть реализация зависимых http-вызовов, которые работают как шарм.Проблема в том, что я хочу использовать распознаватель для вызова данных, которые заполняют форму, до этого приложение просто показывает загрузку счетчика, пока все данные не будут загружены, но с помощью распознавателя я бы загрузил все данные вместе, поэтому я хочу выбрать его, проблема в том, что я не знаю, подходит ли мой подход.

Это мое форк-соединение в компоненте формы

 forkJoin([this.service.getProvince(), this.service.getLingueStraniere(), this.service.getTitoliPreferenziali(), this.service.getRiserve()])
      .pipe(switchMap(result => {
        console.log('Province', result[0]);
        console.log('LingueStraniere', result[1]);
        console.log('TitoliPreferenziali', result[2]);
        console.log('Riserve', result[3]);
        return this.service.getDomanda();
      }))
      .subscribe((domanda: any) => {
          this.popolaForm(domanda); 
        },
        (error: AppError) => {
          if (error instanceof NotFoundError) {
            console.log('Error richiesta http');
          } else {
            console.log(error);
          }
        }); 

Прежде чем вызывать последний http-вызов 'getDomanda () ', я заполняю некоторые формы фильтра списком, и после этого я заполняю основную форму последним вызовом, поэтому, чтобы сделать последний вызов, мне нужно сначала заполнить отфильтрованные формы.Ранее объединение должно быть перемещено в резольвер.Как я могу передать первые данные в раскрывающийся список, а после в форму?Имейте в виду, что выпадающий список filterl также входит в группу mainform

Это должен быть код для записи в распознавателе, это безопасная реализация или я должен придерживаться forkjoin в компоненте формы?Спасибо.

     constructor(private service: DataService) { } 
    resolve(route: ActivatedRouteSnapshot,
              state: RouterStateSnapshot): Observable<Data> {
        return forkJoin([this.service.getProvince(), this.service.getLingueStraniere(), this.service.getTitoliPreferenziali(), this.service.getRiserve()])
          .pipe(switchMap(result =>
            return this.service.getDomanda();
          }));
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...