2017-10-25 2 views
0

私は、角型アプリケーションで解決したい現在の問題があります。おそらくRXJSなしで動作させることができますが、私はストリームでより良くなっていきたいと思います。RXJSリスト選択ストリーム

私はチェックボックスのリストを持っています。これらは、オプション{id:number、label:string}のインタフェースによって定義されます。

Observable of {id:number、label:string}を渡して、選択されたものを記録し、チェックボックスで選択が変更されるたびに選択を放出します。

私はすでに{id:number、label:string}のオプションストリームを持っています。私の考えは、それを{id:number、label:string、selected:boolean}型の別のストリームにマップすることでしたが、変換されたストリームをフィルタリングするselectedOptions $ストリームを取得しましたが、正しいアプローチでさえ

options$: {id: number, label: string}; 
transformedOptions$: {id: number, label: string, selected: false} 
selectedOptions$ = options$.map(options => options.filter((option) => option.selected)); 
+0

あなたはonValueChangeから値を取得し(またはあなたがのonchangeハンドラを使用することができます)とします。反応性のあるフォームを使用していますか?そうであれば、フォーム上で観測可能な 'valueChange'を聞き、選択されたチェックボックスでそれをフィルタリングして返すことができます。 –

答えて

0

は、あなたが正しい軌道に乗っている

this.form.field.onValueChange.map(id=>{ 
// lets say you got the id as selected value 
return options.filter(value=>options.id==id)[0] 
}).subscribe()