2016-07-15 75 views
1

我使用Angularfire2將comunicante與Firebase結合使用。這是代碼:Angular2和Firebase(AngularFire2)

import {Component} from '@angular/core'; 
import {AngularFire, FirebaseListObservable} from 'angularfire2'; 

@Component({ 
    selector: 'app', 
    templateUrl: ` 
    <ul> 
    <li *ngFor="let item in items | async"> 
     {{ item.name }} 
    </li> 
    </ul> 
    `, 
}) 
class AppComponent { 
    item: Observable<any>; 
    constructor(af: AngularFire) { 
    this.item = af.database.list('/items'); 
    } 
} 

指令af.database.list('items')需要幾秒鐘來檢索數據。那麼,我怎麼知道數據何時已經加載?如果我知道,我可以顯示一個「加載欄」。

回答

4

嘗試認購您items內部組件是這樣的:

constructor(af: AngularFire) { 
    this.item = af.database.list('/items'); 
    this.item.subscribe(() => this.showLoader = false); 
} 

,並使用一些領域綁定裝載機的知名度肯定

+0

我會盡力的!謝謝 – Matias999

+0

謝謝@ Oleg Barinov ......非常棒! – Matias999

0

我的不好,setTimeout不會完全解決問題。如何使用異步方法。我不知道如何在代碼中導入q api。

constructor(af: AngularFire) { 
    var def = $q.defer(); 
    this.item = af.database.list('/items'); 
    def.resolve(this.item); 
    } 
+0

感謝您的答覆,但setTimeout的適用於固定時間不? – Matias999

相關問題