1
に関数の結果にバインドする方法:これはFirebaseデータベースに接続されてAngular4:このコードを考えるとngFor
<div *ngFor='let loc of user.locations | async'>
<div *ngFor='let day of days'>
<div *ngFor='let data of get_data_observable(loc, day) | async'>
...
</div>
</div>
</div>
。
get_data_observable(loc, day) => this.db.list(`/users/${this.auth.uid}/times/${loc.$key}/${day}`)
私は新しい観測可能な大規模なパフォーマンスの問題を引き起こし、に最もngForたび角度のチェックを作成されていると信じています。 ngForが式ではなくget_data_observable(loc, day)
の結果にバインドされるようにします。そして、それは変化しない1つの観測可能なものにサブスクライブしています。
この場合の最善の方法は何ですか?
https://github.com/angular/angular/issues/14826問題について説明したが、提案された解決策は、(静的変数に割り当てる)を実装するには余りにも困難であり、可能な結果が多すぎるため、3レベルの入れ子が存在するためです。 – Jon
SwitchMapかもしれませんか? http://blog.angular-university.io/rxjs-switchmap-operator/ – JGFMK
これで解決できるかどうかわかりません。この問題は、https://github.com/angular/angular/issues/2449でさらに詳しく説明されていますが、テンプレートベースのソリューションを許可していないようです。別のコンポーネントを作成する必要があります... – Jon