Я создал Angular Bootstrap
typeahead, который должен открываться при нажатии.Так вот мой код:
resultFormatter = (inventoryModel: InventoryModel) => this.mapResult(inventoryModel);
const inventories$ = this.recruiterService.getInventories();
this.search = (text$: Observable<string>) => {
const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());
const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));
const inputFocus$ = this.focus$;
return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$, inventories$).pipe(
filter((val: string) => val !== ''),
mergeMap(() => inventories$),
map((inventoryModels: InventoryModel[]) => inventoryModels)
);
};
Это выполняется в методе ngOnInit()
.Мой html
выглядит следующим образом:
<input
placeholder="Start typing..."
id="inventoryId"
type="text"
class="form-control"
[ngbTypeahead]="search"
(focus)="focus$.next($event.target.value)"
(click)="click$.next($event.target.value)"
[inputFormatter]="resultFormatter"
[resultFormatter]="resultFormatter"
(selectItem)="onItemSelected($event)"
#instance="ngbTypeahead"
/>
Проблема с этим кодом заключается в следующем: 1. Он не открывается при щелчке на входе 2. После ввода ввода мой бэкэнд вызывает несколько раз 3. При вводесписок не сжимается 4. В конце концов, когда элемент выбран, снова открывается раскрывающийся список (??)
Кто-нибудь знает, как использовать этот тип сообщения в случае моей проблемы?