2017-05-25 66 views
2

我正在开发一个Angular项目,并遵循一些教程设法从firebase数据库获取一些数据。Angular/Firebase - 从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'); 
    } 
} 

将只返回值。

我怎么都

回答

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

+0

这是当前的代码:出口class AppComponent { items:FirebaseListObservable ; snippets:FirebaseListObservable ; 构造函数(db:AngularFireDatabase){ this.items = db.list('/ items'); } } – dj2017

+0

@ dj2017我编辑了我的答案,使它对你更清楚,所以我写了完整的组件,让你更好地理解它 –