我在firebase中有数据,我想使用循环来显示它们。
class C extends A{
protected static $things; // add this and B will not interfere!
public static function things(){
static::$things[2] = 'Thing C';
return static::$things;
}
}
我无法显示第二个循环,NgFor仅支持绑定到Iterables(例如数组)。如何转换?
答案 0 :(得分:1)
在firebase中,通过snapshotChanges()检索数据包括具有{key,payload,prevKey,type}形式的实际数据的元数据。
在用户情况下,您尝试访问 item.name ,但未定义。
您必须在迭代之前提取有效负载。您可以尝试这样的事情。
items$: any;
constructor(db: AngularFireDatabase) {
this.items$ = db.list(`/users/`).snapshotChanges()
.pipe(map(changes => changes.map(c => ({
key: c.key,
payload: c.payload.val(),
type: c.type,
prevKey: c.prevKey
}))));
}
<div *ngFor="let item of items$ | async;">
Items: {{item.key}}
name: {{item.payload.name}}
</div>
如果不需要键,请使用valueChanges()而不是snapshotChanges()。
有关更多详细信息,https://github.com/angular/angularfire2/blob/master/docs/rtdb/lists.md