2016-09-07 24 views
0

私はアイテムのリストを取得するために私のfirebaseデータベースを呼び出す単純な関数を持っています。私はlocation.liked === trueでこれらの項目をフィルタリングする簡単な方法を探しています。しかし、従来のフィルタ配列法を使用してこれを達成することはできませんでした。あなたの誰かがこれがどうやって行えるか感覚がありますか?私の最初のアプローチは、以下のロジック観測可能な値をフィルタ

this.filteredResult = locations.map((locations) => { 
return locations.filter((location) => { 
    return location.liked 
}) 
}) 

を使用することであった

this.locations = af.database.list('/trips') 
    .map((locations) => { 
    return locations.map((location) => { 
     location.liked = af.database.object(`/likes/${this.uid}/${location.$key}`); 
     return location; 
    }) 
    }); 

しかし、これは私にどんな[]

+0

このコードを含む関数はどのように見えますか? – micronyks

+0

実際には、上記の完全な関数がクラスのコンストラクタに配置されています。クラスの場所を場所として定義するだけの価値はありません:Observable ; – user3642173

答えて

0

をフィルタリングすることができないというエラーを与えるあなたはこのような何かを試してみました:

this.locations = af.database.list('/trips').filter((location) => { 
    return location.liked === true; 
}); 

この例を確認:

https://plnkr.co/edit/U9p7LHFsYIXeFiJkIiRs?p=preview

+0

返事をありがとう。これにより、次のエラーが返されます。プロパティ 'favorite'が型any []に存在しません。その理由はaf.database.listがaf.database.list( '/ trips')にコードを変更するだけで、observable – user3642173

+0

@ user3642173を返すことが考えられる。map(locations => locations.filter((location) => {return location.liked === true;})) –

+0

ルイスに感謝します。これは私が最初に試みたものですが、同じエラーを返します。 location.likedからの結果も観測可能なものであることができますか? – user3642173

関連する問題