0

我正在尝试从 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

我究竟做错了什么 ?

4

1 回答 1

0

我想你想要这样的东西

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得到结果然后执行过滤的

于 2016-08-21T23:15:37.120 回答