Фильтр Наблюдаемый <любой []> с Наблюдаемым <string> - PullRequest
0 голосов
/ 31 октября 2018

Используя Angular 7, у меня есть поисковый вход, который подключен к Observable<string>

searchValue = new FormControl("");
this.searchChanges$ = searchValue.valueChanges

У меня есть еще один Observable<Record[]>, который я получаю от firebase, я пытаюсь отфильтровать массив по строке, которую я получаю из результатов поиска, используя:

return this.searchChanges$.pipe(
  withLatestFrom(recordsObserver, (searchValue, records) => {
    return records.filter(record => record.title.includes(searchValue));
  })
);

Проблема в том, что список не обновляется до тех пор, пока что-то не будет изменено во входных данных. Как лучше всего это решить?

1 Ответ

0 голосов
/ 31 октября 2018

Когда обе наблюдаемые предназначены для использования в качестве основного источника для новой наблюдаемой, вам лучше использовать ОбъединитьПоследние над сПоследниеFrom . Таким образом, когда срабатывает одна из ваших исходных наблюдаемых, сработает и ваша новая комбинированная наблюдаемая.

Другим удобным инструментом, когда дело доходит до таких случаев использования, является использование startWith

...