我的组件上有一个可观察到的字符串数组const obs$: Observable<string[]>作为属性。虽然我可以在async语句上成功使用*ngIf管道,但是通过数组索引器(obs$ | async)[0]访问该管道时会失败。

例子:

<!-- 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>

obs $的实例是在组件的构造函数中设置的,因此,当模板与数据绑定(bind)时,obs $不应是未定义的。

如何正确访问模板中数组的元素?

最佳答案

这可能有效

<img [src]="(obs$ | async) ? (obs$ | async)[0] : null">

关于asynchronous - Angular2 : Async pipe for array index,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38845501/

10-10 23:18