【问题标题】:AngularFire2 DB call is not executed未执行 AngularFire2 DB 调用
【发布时间】:2016-12-28 00:22:30
【问题描述】:

我正在尝试从 Typescript 中的 Angularfire2 过滤数据库列表以获取特定记录。

AddAppointment(date:Date){
let existingAppointment = this.af.database.list(this.appointmentDbRoute).map(values => {
  let filtered = values.filter(filter => filter.Date === date);
  return filtered;
})};

问题是:map 方法没有被执行。我可以做我想做的事,它不执行,只有当我在末尾添加订阅功能时。 在所有教程中,只有 Map 方法被调用。

我正在使用版本 angularfire2@^2.0.0-beta.2

我做错了什么?

【问题讨论】:

    标签: angular typescript firebase firebase-realtime-database angularfire2


    【解决方案1】:

    我想你想要这样的东西

    this.items = af.database.list('this.appointmentDbRoute', { preserveSnapshot: true });
    this.items
      .subscribe(snapshots => {
        snapshots.forEach(snapshot => {
          // DO SOME FILTERING HERE...
        });
      })
    

    来自此处的文档:https://github.com/angular/angularfire2/blob/master/docs/3-retrieving-data-as-lists.md

    自从您致电后,您正试图在 FirebaseObservable 上呼叫地图

    this.af.database.list(this.appointmentDbRoute)

    返回一个FirebaseObservable你需要subscribe来获取结果然后执行过滤

    【讨论】:

    • 嗨亚伦,好的,现在我明白了:必须有一个订阅者来获取数据,一个 ngFor 或手动订阅这个。非常感谢!
    猜你喜欢
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 2021-03-16
    • 2017-07-10
    • 2018-06-04
    相关资源
    最近更新 更多