Angular2 和 Firebase (AngularFire2)
Angular2 and Firebase (AngularFire2)
我使用 Angularfire2 与 Firebase 通信。这是代码。:
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')
需要几秒钟来检索数据。那么,我怎么知道数据何时已经加载呢?如果我知道,我可以显示 "loading bar".
糟糕,setTimeout 不能完全解决问题。如何使用异步方法。不过,我不确定如何在您的代码中导入 q api 。
constructor(af: AngularFire) {
var def = $q.defer();
this.item = af.database.list('/items');
def.resolve(this.item);
}
尝试像这样订阅您的 items
内部组件:
constructor(af: AngularFire) {
this.item = af.database.list('/items');
this.item.subscribe(() => this.showLoader = false);
}
并使用一些字段绑定以确保加载器可见性
我使用 Angularfire2 与 Firebase 通信。这是代码。:
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')
需要几秒钟来检索数据。那么,我怎么知道数据何时已经加载呢?如果我知道,我可以显示 "loading bar".
糟糕,setTimeout 不能完全解决问题。如何使用异步方法。不过,我不确定如何在您的代码中导入 q api 。
constructor(af: AngularFire) {
var def = $q.defer();
this.item = af.database.list('/items');
def.resolve(this.item);
}
尝试像这样订阅您的 items
内部组件:
constructor(af: AngularFire) {
this.item = af.database.list('/items');
this.item.subscribe(() => this.showLoader = false);
}
并使用一些字段绑定以确保加载器可见性