2017-05-25 64 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我編輯了我的答案,使它對你更清楚,所以我寫了完整的組件,讓你更好地理解它 –