私はRXxJSにかなり新しいので、私はそれで間違った方法を探しているかもしれないが、私は「Verpleegperiodes」の配列を返すサービスを持っている:角度2 RxJS GROUPBY flatMap空
export class Verpleegperiode{
verpleegperiodeId?: number;
beginDatumUur?: moment.Moment;
eindDatumUur?: moment.Moment;
bed: string;
kamer: string;
dienst: Dienst;
dossier: Dossier;
}
そして、私のコンポーネントでは、私は 'kamer'プロパティでグループ化された 'Verpleegperiodes'の配列を取得しようとしています。 '101'、 '102'、 '103'、... は、だから私は、これはRxJSで可能であるならば、用例:
[{verpleegperiodeId: 1, kamer: '101'},{verpleegperiodeId: 3, kamer: '101'}]
[{verpleegperiodeId: 6, kamer: '102'}]
あるいはさらに良いの観測ストリームが欲しい:
このため{ kamer: '101', verpleegperiodes: [{verpleegperiodeId: 1, kamer: '101'},{verpleegperiodeId: 3, kamer: '101'}] }
{ kamer: '102', verpleegperiodes: [{verpleegperiodeId: 6, kamer: '102'}] }
、私はグループ別のドキュメント見つけた:
:これを使用してhttps://www.learnrxjs.io/operators/transformation/groupby.htmlを、私はこれを生成する(ルートのdienstIdパラメータを使用して)このコードを追加しました
this.activeVerpleegperiodes$ = this._route.params
.switchMap((params: Params) => this._infohosService.getActiveVerpleegperiodesByDienstId(params['dienstId']))
.flatMap(verpleegperiodes => verpleegperiodes)
.groupBy(vp => { console.log(vp.kamer); return vp.kamer; })
.flatMap(group => { return group.reduce((acc, curr) => { return [...acc, curr]; }, []); })
.map(f => { console.log(f); return f; });
値を確認するためにconsole.logを追加しました。 GROUPBY部分戻りではconsole.log:
101
101
102
...
私はすでに1つの配列の正しい値をグループ化され、ACCとCURR値をログに記録する機能を減らすには、いくつかはconsole.log年代を入れています。 ただし、map関数のconsole.logはログに記録されません。未定義または[]でさえない。私のテンプレートで
私もストリームの非同期値を印刷しよう:
{{ activeVerpleegperiodes$ | async | json }}
これは常にnullです。
どのようにして必要な結果を得ることができますか?