Как заменить наблюдаемый массив массивом из ответа API? - PullRequest
0 голосов
/ 10 июля 2020

Я использую ввод автозаполнения пользовательского материала для выбранных элементов в моем компоненте формы Dynami c. Как я уже сказал, поля формы - это динамические c, и для фильтрации списка элементов я должен изменять список каждый раз, когда пользователь вводит что-нибудь во входных данных.

filteredOptions: { [key: string]: Observable<PickListItem[]> } = {}; key - это имя controlName, а PickListItem - это список элементов для выбора.

В некоторых случаях пользователь может добавить свой собственный параметр в список, после этого есть запрос API, который возвращает обновленный список элементов, и вот моя проблема: я хочу заменить старый список на новый (обновленный).

Кто-нибудь может мне помочь?

this.componentsApiService.addPicklistItem(field.Attributes.List.ID, this.addInputOption)
      .pipe(
        finalize(() => {
          this.store.dispatch(new StopLoading('shared.saving'));
        }),
        takeUntil(this.componentDestroyed$))
      .subscribe( result /*updated list*/ => {
        this.filteredOptions[field.Label] = <= here I want to assign observable updated list, dont know how to do this
        this.addInputOption = '';
      }, ({error}) => {
        this.snackBarService.error(error.message);
      });

1 Ответ

1 голос
/ 10 июля 2020

вы можете использовать оператор rx js of для создания наблюдаемого

import { of } from 'rxjs';

this.filteredOptions[field.Label] = of(result);
...