2017-01-02 87 views
2

你如何正確遍歷一個AngularFire觀察的名單? 我不知道如何處理數據,每一個響應返回列表,以及一個新的全體成員(如「金字塔」) -如何遍歷AngularFire可觀察列表?

first response: [{obj1}] 
second response: [{obj1}, {obj2}] 
third response: [{obj1}, {obj2}, {obj3}] 

我試圖實現我的代碼兩種解決方案,沒有一個看起來像是正確的路要走。

第一解決方案使用rxjs地圖 - 但它太過度,因爲它遍歷每次整個響應。

getAllSchools(): Observable<any> { 
    return this.angularFire.database.list('schools').map((response) => { 
     return response.map(school => { 
      return \\do something to school\\ 
     }) 
    }) 
} 

這意味着,在上述(其中超過schools列表上循環)的「做些什麼來學校」的例子是時間執行school1,然後再school1,並率先school2。然後第三次school1,第二次school2,和第一時間school1

第二溶液,我試圖使用preserveSnapshot實現。這裏的問題是,我不確定它只返回一次和一次數據。

getAllSchools(): Observable<ISchool> { 
    return new Observable(observer => { 
     this.angularFire.database.list('schools', { preserveSnapshot: true }) 
      .subscribe(snap => { 
       snap.forEach((school) => { 
        ///do things to school/// 
        observer.next(school) 
       }) 
      }) 
    }) 
} 

這是一個非常基本的問題,我相信解決方案非常「簡單」。儘管如此,我找不到明確的解決方案。

是否需要使用另一個庫,例如這個one

非常感謝!

+1

聽起來像這樣的問題:https://github.com/angular/angularfire2/issues/574 – cartant

回答