在之前的一个问题中 这里,我正在尝试只在两个信息之间日期发生变化时显示该日期。
不同的是,我现在连接到实时数据库(Firebase),因此我订阅数据源并通过async管道传递它,在经过索引和*ngIf之前:
不同的是,我现在连接到实时数据库(Firebase),因此我订阅数据源并通过async管道传递它,在经过索引和*ngIf之前:
<div *ngFor='let message of (chat | async) ; let i = index'>
<button *ngIf="i == 0 || (message.timestamp | date: 'ddMMMMyyyy') != ((chat | async)[i-1].timestamp | date: 'ddMMMMyyyy')">
{{ message.timestamp | date:'ddMMM' }}
</button>
...
<!--More html elements below (omitted)-->
...
</div>
当我首次加载视图时,这个功能运行得很好,但是如果我将一个新条目推入chat
,我会收到以下错误:
TypeError: Cannot read property '0' of null
也许我不太确定异步管道的工作原理,但是当我尝试返回{{ (chat | async).length }}
时,它按预期工作。有关解决方法/适当的做法的任何建议吗?
||
是否会短路吗?可能是一个 bug。 - Günter Zöchbauer[i-1]
计算为0,这就是抛出异常的地方。 - shinglesmingles