在开始之前,我需要强调我对 angular 和 angularfire 都是新手(不断学习)-
我的 firebase 数据库如下所示:
我可以访问订单详细信息并将它们绑定到 html 中,但我不完全确定如何将 Items 转换为可迭代数组,然后我可以使用第二个 ngfor。
我的 html 文件看起来像:
<ng-container *ngFor="let order of orders$ | async ">
<ng-container *ngFor="let item of order.Items">
<ng-container *ngIf="order['Order Status'] == 0 ">
... Display stuff using {{ item.Item }} {{ item.Quantity }}
我在 .ts 文件中的构造函数如下所示:
constructor(afDb: AngularFireDatabase) {
this.orders$ = afDb.list<any>('data/shop', ref => ref.orderByChild('ETA')).snapshotChanges().map(
changes => {
return changes.map(
c => ({ key: c.payload.key, ...c.payload.val() })
);
}
);
}
我看过其他人的问题和答案,例如: AngularFire2 nested *ngFor Array within Array... but Firebase doesn't have arrays...?
但我不知道解决方案对我来说是什么样的,因为我已经在使用 .map() 来返回订单的密钥。我使用 order.key 作为更新订单状态的方法的输入,所以我需要按原样进行这项工作。
我知道我必须对我在此处粘贴的 .ts 代码部分做一些事情,但不知道从哪里开始。
尽管我想要一个复制粘贴解决方案,但我非常感谢您解释为什么提出的解决方案会起作用,这样我就可以了解为什么而不是什么。
我正在使用 AngularFire 2.3.0 和 Angular 5.0.0