1

我使用 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')需要几秒钟来检索数据。那么,我怎么知道数据何时已经加载呢?如果我知道,我可以显示一个“加载栏”。

4

2 回答 2

4

尝试items像这样订阅您的内部组件:

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

并使用一些字段来绑定加载程序的可见性

于 2016-07-15T15:32:09.047 回答
0

我的错,setTimeout 不能完全解决问题。如何使用异步方法。我不确定如何在您的代码中导入 q api。

  constructor(af: AngularFire) {
    var def = $q.defer();
    this.item = af.database.list('/items');
    def.resolve(this.item);
  }
于 2016-07-15T13:21:31.117 回答