Я использую ngbootstrap typeahead (https://ng -bootstrap.github.io / # / components / typeahead / examples # http )
, как в приведенном примере нам нужно вернутьнаблюдаемый до [ngbTypeahead]="search"
мы ожидаем ниже результата от API
{
"data": {
"groupNames": [
"group level one",
"group level two",
"group level one",
"group level two"
]
}
}
от этого возвращаемого результата, который мы должны отфильтровать, содержащий слово.
search = (text$: Observable<string>) =>
text$.pipe(
debounceTime(300),
distinctUntilChanged(),
map((term) => term.length < 1 ? [] :
this.productService.getGroups().subscribe((response) => {
if (response && response.data) {
return response.data.groupNames.filter((response) => response.toLowerCase().indexOf(term.toLowerCase()) > -1);
}
},
),
),
)
Вопрос:
как мне вернуть нижеприведенный результат как наблюдаемое для свойства typahead
return response.data.groupNames.filter((response) => response.toLowerCase().indexOf(term.toLowerCase()) > -1);
(примечание - мыповторное извлечение целых данных из сервиса и из результата мы выполняем фильтрацию результатов по типу пользователя)