Я использую эту ссылку для реализации функции TypeAhead
https://ng -bootstrap.github.io / #/ components / typeahead / examples
поиск в википедии для извлечения данных из вызова API.M y api перед вызовом throws отменяет исключение.
<input id="modelTypeahead" type="text" class="form-control" [(ngModel)]="searchCriteria"
[ngbTypeahead]="search" placeholder="Device CRM" #model="ngModel"
name="model" [editable]="false" [disabled]="searching" (selectItem)="modelSelected($event.item)"
[resultFormatter]="formatMatches" [inputFormatter]="formatMatches"/>
Я обновил свое приложение до angular 6, и я следую этому шаблону, и всегда нажимаю на api call therows отмененный http-запрос,Понятия не имею, где мне не хватает.
search = (text$: Observable<string>) =>
text$.pipe(
debounceTime(300),
distinctUntilChanged(),
tap(() => this.searching = true),
switchMap(term =>
this.auditService.search(term, this.authService.getSSO()).pipe(
tap(() => this.searchFailed = false),
catchError(() => {
this.searchFailed = true;
return of([]);
}))
),
tap(() => this.searching = false)
)
// На своем сервисном уровне я вызываю эту сервисную функцию [ this.auditService.search ]
search(term: string, ssoId: string) {
if (term === '') {
return of([]);
}
let postData = {
'ssoId': ssoId,
'crmNumber': term
};
return this.httpClient
.post(this.modelSearchURL+'/device/search', JSON.stringify(postData), {});
}