2016-07-15 74 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

相关问题