Ich möchte ngBootstrap für Angular 4 Typeahead für Autocomplete verwenden. Das Beispiel, das sie für den Remote-Datenabruf verwenden, verwendet Jsonp und nicht http. Ich habe versucht, mehr Informationen zu finden, um Jsonp mit http in diesem Beispiel zu ersetzen. Ich bin mit Observablen noch nicht so vertraut, also versuche ich sie zu lernen und verstehe sie besser.Verwenden von http mit ngBootstrap TypeAhead für Angular 4
Ich habe diese example gesehen, aber es sieht wirklich einfach und vielleicht (?) Lässt viel ... aus Gründen der Einfachheit aus?
Kann jemand in die richtige Richtung zeigen, ich versuche, einige gute Beispiele mit http mit ngBootstrap Typeahead zu finden.
bearbeiten
{
"took": 15,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 9,
"max_score": 4.2456956,
"hits": [
{
"_index": "query-index",
"_type": "autocomplete",
"_id": "AVxqBE-3t2o4jx2g0ntb",
"_score": 4.2456956,
"_source": {
"suggestions": "bruce"
}
},
{
"_index": "query-index",
"_type": "autocomplete",
"_id": "AVxqBE-3t2o4jx2g0ntc",
"_score": 3.064434,
"_source": {
"suggestions": "bruce wayne"
}
},
{
"_index": "query-index",
"_type": "autocomplete",
"_id": "AVxqBE-3t2o4jx2g0ntd",
"_score": 3.064434,
"_source": {
"suggestions": "bruce willis"
}
},
bearbeiten 2
export class AutocompleteComponent {
model: any;
searching = false;
searchFailed = false;
constructor(private autocompleteService: Elasticsearch) {}
//formatMatches = (query: any) => query.hits.hits._source.suggestions || '';
//formatMatches = (query: any) => query.hits.hits || '';
formatMatches = (query: any) => <any>response.json().hits.hits || '';
search = (text$: Observable<string>) =>
//search = (text$: Observable<Suggestion[]>) =>
text$
.debounceTime(300)
.distinctUntilChanged()
//.switchMap(term =>
//Observable.fromPromise(this.autocompleteService.search(term)
.switchMap(term =>
this.autocompleteService.search(term)
.do(() => this.searchFailed = false)
.catch(() => {
this.searchFailed = true;
return Observable.of([]);
}))
.do(() => this.searching = false);
}
Ich glaube, ich habe mir zu arbeiten, aber ich bin ein nicht genau, wie ich es tat. Ich habe das Beispiel verwendet, das du hier gepostet hast! –