ANGULAR如何推送到可观察数组?英雄:Observable <hero []>

时间:2018-05-04 18:42:09

标签: angular typescript firebase rxjs angularfire

给定一个数组:

// hero.service.ts
hero: Observable<Hero[]>;

你会怎么做类似的事情: hero.push(newHero)?

1 个答案:

答案 0 :(得分:1)

不确定您要实现的目标,但是因为您标记了firestore。我猜你可以使用angularfirestorecollection并稍后将它们映射到observable数组。

cardsCollection: AngularFirestoreCollection<Card>;
  cardDoc: AngularFirestoreDocument<Card>;
  cards: Observable<Card[]>;

在初始化时,您将它们绑定在一起。

ngOnInit() {
  this.cards = this.cardsCollection.snapshotChanges().map(changes => {
    return changes.map(a => {
      const data = a.payload.doc.data() as Card;
      data.id = a.payload.doc.id;
      return data;
    });
  });
}

然后您可以将卡添加到AngularFirestoreCollection。

addCard(card: Card) {
    this.cardsCollection.add(card);
}

希望这会有所帮助。如果您想查看我的完整代码和项目,请转到我的github