Bonsoir,
je cherche a adapter l'exemple officiel d'Angular Material, qui se base sur un tableau d'objets statique, pour prendre pour source le retour d'un httpClient.
Je pense être proche de la solution, mais ce n'est pas encore ça...
Mon HTML ressemble a ca:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="pushValue()"> <mat-option *ngFor="let option of filteredoptions | async" [value]="option"> <span>{{option.label}}</span> | <small>{{option.id}}</small> </mat-option> </mat-autocomplete>
Mon fichier TS a cela:
J’essaie donc de retourner le résultat de la méthode httpclient.get la ou dans l'exemple, ils utilisent une fonction de filtrage du tableau d'objets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ... optionCtrl = new FormControl(); filteredoptions: Observable<any[]>; constructor(private httpClient: HttpClient) { this.filteredoptions = this.optionCtrl.valueChanges .pipe( debounceTime(500), distinctUntilChanged(), tap(value => this.httpSearch(value) ), startWith(''), map(value => typeof value === 'string' ? value : value.label), map(option => this.httpClient.get(this.endpointURL + option).subscribe({next: value => {return value}})) ); } ...
J'obtiens l'erreur suivante au niveau de ma variable this.filteredoptions
J'ai beau tourner le problème dans tous les sens, je ne vois pas comment lui passer le résultat d'HttpCLient qui pourtant, correspond bien à un tableau d'objet quand la chaîne n'est pas vide...Type 'Observable<Subscription>' is not assignable to type 'Observable<any[]>'.
Qu'est ce que je manque![]()
Partager