2

我有一个简单的应用程序列出了一组位置,登录用户可以将给定位置标记为“收藏”。

我在 firebase 中的数据结构包含一个简单的位置列表:

Locations => location id: [] => [{name: "MyName"}, {name: "MyName 2}]

喜欢 => 用户 ID:[] => 位置 ID:[] => {喜欢:真}

我想使用一些简单的逻辑在我的模板中迭代它:

  <md-card *ngFor="let location of locations | async">
    <md-card-title> {{location.name}}</md-card-title>
    <md-card-content>{{location.liked}}</md-card-content>
  </mc-card>

使用我的组件中的以下逻辑

  locations: Observable<any[]>;

  constructor(
    private cardService: CardService,
    private router: Router,
    public af: AngularFire)
  {
    this.locations = af.database.list('/trips')
      .map((locations) => {
        return locations.map((location) => {
          location.liked =  af.database.object(`/likes/${this.uid}/${location.$key}`);
          return location;
        })
      }); 

但是,在我看来, location.liked 属性仍然是空的。我检查了 /likes/${this.uid}/${location.$key} URL 实际上包含所需的数据。

关于我应该如何处理这个问题的任何想法?

谢谢

4

1 回答 1

0

与返回对象location.like的firebase一样。要在视图上显示对象值,您应该在其上使用管道database.objectFirebaseObjectObservableasync

<md-card-content>{{location.liked | async}}</md-card-content>

您可以在AngularFire Docs中找到此处解释的相同内容

于 2016-09-05T18:42:45.817 回答