Ich habe eine Observable der Zeichenfolge Arrays const obs$: Observable<string[]>
auf meiner Komponente als eine Eigenschaft. Während ich die async
Pipe auf eine *ngIf
Anweisung erfolgreich verwenden kann, schlägt die Pipe fehl, wenn über Array-Indexer (obs$ | async)[0]
zugegriffen wird.Angular2: Async Rohr für Array-Index
Beispiel:
<!-- evaluates the array emmitted by obs$ for truthyness -->
<div *ngIf="obs$ | async">
<!-- only shown if obs$ emitted an array with length > 0 -->
<!-- but this fails with error: Cannot read property '0' of null -->
<img [src]="(obs$ | async)[0]">
</div>
Die Instanz von obs $ in der Komponente Konstruktor gesetzt, so obs $ sollte nicht undefiniert sein, wenn die Vorlage dagetenbundenen ist.
Wie kann man auf die Elemente des Arrays in der Vorlage richtig zugreifen?
arbeiten Es wurde bereits ein [Fehlerbericht] vorgelegt (https : //github.com/angular/angular/issues/10293) - Das Problem wird in RC.5 behoben. – rinukkusu
Kein Duplikat an sich; Die Lösung in der Duplikatsantwort gilt nur (mit ngFor), wenn Sie über ein Array iterieren möchten; es gibt keine Lösung für den direkten Zugriff auf ein Array durch einen bekannten Index – Dyna