Dans mon composant Angular 2, j'ai un tableau Observable
list$: Observable<any[]>;
Dans mon modèle, j'ai
<div *ngIf="list$.length==0">No records found.</div>
<div *ngIf="list$.length>0">
<ul>
<li *ngFor="let item of list$ | async">item.name</li>
</ul>
</div>
Mais list$.length ne fonctionne pas dans le cas d'un tableau Observable.
Mise à jour :
Il semble que (list$ | async) ?.length nous donne la longueur mais le code ci-dessous ne fonctionne toujours pas :
<div>
Length: {{(list$ | async)?.length}}
<div *ngIf="(list$ | async)?.length>0">
<ul>
<li *ngFor="let item of (list$ | async)">
{{item.firstName}}
</li>
</ul>
</div>
</div>
Quelqu'un peut-il m'indiquer comment vérifier la longueur d'un tableau Observable.
0 votes
Rapporté à github.com/angular/angular/issues/9641
3 votes
Votre approche présente un autre problème majeur : en utilisant le tube asynchrone à plusieurs reprises dans votre modèle, vous lancez en fait un grand nombre d'abonnements à l'Observable unique. KAMRUL HASAN SHAHED a adopté la bonne approche ci-dessus : Utilisez le tube asynchrone une fois, puis fournissez un alias pour le résultat que vous pouvez exploiter dans les nœuds enfants.