我正在开发一个Angular项目,并且遵循一些教程设法从firebase数据库中获取一些数据。
以下是获取值
的代码<ul>
<li class="text" *ngFor="let item of items | async">
{{item.$value}}
</li>
</ul>
我的问题是......我正在获取值,但我也希望获得名称(或者键,如果这是名称)。
例如,数据如下所示:
items
name: car,
value: ford
此代码:
<ul>
<li class="text" *ngFor="let item of items | async">
{{item.$value}}
</li>
</ul>
JS代码:
export class AppComponent {
items: FirebaseListObservable<any[]>;
snippets: FirebaseListObservable<any[]>;
constructor(db: AngularFireDatabase) {
this.items = db.list('/items');
}
}
只会返回值。
我如何同时获得
答案 0 :(得分:2)
如果您使用的是angularfire2库,只需传递preserveSnapshot
参数
import { Component} from '@angular/core';
import { AngularFireDatabase} from 'angularfire2/database';
@Component({
selector: 'app-root',
template: `
<h1>{{key | async}}</h1>
<h1>{{value | async}}</h1>
`
})
export class AppComponent {
key: any;
value: any;
constructor(db: AngularFireDatabase) {
this.items = db.list('/items', { preserveSnapshot: true });
this.items
.subscribe(snapshots => {
snapshots.forEach(snapshot => {
this.key = snapshot.key;
this.value = snapshot.val()
});
})}
}
有关详细信息,请访问官方文档here