1

私はこれで立ち往生しています:私のデータベースは非常に単純です。

 {
      "cities" : {
        "A" : true,
        "B" : true,
        "C" : true,
      },
      "productspercities" : {
        "A" : {
          "-KNnf89UzBvzmYlrpiQj" : true,
          "-KNnfAs31LkMUjU60VAG" : true,
          "-KNngYcNoUUql4oIMxwU" : true
        },
        "B" : {
          "-KO-wEN536BAx15ZpTO1" : true,
          "-KO-xsw5Af1QNqTzDo2K" : true
        },
        "C" : {
          "-KNvvTEN5B0jbPLfOHxr" : true,
          "-KO-v_WR8LSk4UfnGoYy" : true,
          "-KO-viF1tOSp4JmpQxdi" : true
        }
      },
      "short_desc" : {
        "-KNnf89UzBvzmYlrpiQj" : {
          "desc" : "A nice flat in A"
        },
        "-KNnfAs31LkMUjU60VAG" : {
          "desc" : "A nice land in A"
        },
        "-KNngYcNoUUql4oIMxwU" : {
          "desc" : "A nice home in A"
        },
        "-KNvvTEN5B0jbPLfOHxr" : {
          "desc" : "A nice flat in C"
        },
        "-KO-v_WR8LSk4UfnGoYy" : {
          "desc" : "A nice land in C"
        },
        "-KO-viF1tOSp4JmpQxdi" : {
          "desc" : "A nice home in C"
        },
        "-KO-wEN536BAx15ZpTO1" : {
          "desc" : "A nice home in B"
        },
        "-KO-xsw5Af1QNqTzDo2K" : {
          "desc" : "A nice land in B"
        }
      }
    }

都市 A の製品のみを表示したいので、この関数を使用して、この都市の製品のすべての参照を取得します。

this.productspercities = this.af.database.list('/productspercities/A')

この場合、次の参照が返されます: -KNnf89UzBvzmYlrpiQj -KNnfAs31LkMUjU60VAG -KNngYcNoUUql4oIMxwU

これで、表示する製品にこれらの参照があることがわかりました。しかし、これらの製品 (short_desc) の詳細を取得するにはどうすればよいでしょうか?

私はこれを試しました:

getShortDesc(city) {
      this.productspercities = this.af.database.list('/productspercities/'+city)
      .map((productspercities) => {
        return productspercities.map((ref) =>
        {
          ref.shortdesc = this.af.database.list('/short_desc/${ref.$key}')
        return ref;
      })
      })

アプリは警告なしで正しくビルドされていますが、ビューに結果を表示しようとすると:

<ion-card *ngFor="let description of ref.shortdesc | async">
<ion-item>
<h2>{{description.desc}}</h2>
</ion-item>
</ion-card>

このエラーが発生します:

元の例外: TypeError: undefined はオブジェクトではありません (「self.parent.context.ref.shortdesc」を評価しています)

あなたの助けが必要です !

4

1 に答える 1

4

正しい地図はこれです..最後に解決策を見つけ、それが他の人の助けになることを願っています.

this.productspercities = this.af.database.list('/productspercities/'+city)
      .map((items) => { console.log(items);
        return items.map(item => { item.short_desc = this.af.database.object('/short_desc/'+item.$key);
        return item; });
        });

次に、ビューで:

<ion-card *ngFor="let item of productspercities | async">
<ion-item>
<h2>{{(item.short_desc | async)?.desc}}</h2>
</ion-item>
</ion-card>
于 2016-08-03T23:49:42.730 に答える