カスタムObservable
とカスタムアイテムTemplateRef
に基づいてアイテムのコレクションをレンダリングするコンポーネントの作成に問題があります。コレクションが変更されるたびに破棄されるTemplateRefアイテム
コンポーネントは、入力としてObservable
とTemplateRef
を取り込み、適切にレンダリングします。この問題は、コレクションが変更され、コレクション内のすべてのアイテムが破棄されて再作成される場合に発生します。
これは明らかに、私がアニメーションに依存してコレクションに出入りするアイテム(またはコレクションの位置を変更するアイテム)を示す場合に問題になります。
代わりに、自分のコンポーネントがコンポーネントを直接レンダリングする場合(すなわち、TemplateRef
の入力ではない場合)、コレクションの変更のたびにコンポーネントのこの問題は破棄されません。問題を絞って、*ngFor
のをテンプレートのアウトレットコンテキストに渡すことができたと思います。
私はhereの問題を再現しました。TemplateRef
とコンポーネントを直接レンダリングすることの違いを実証しています。 ngOnDestroy
は、コンポーネント:enter
が実行されたときのアニメーションと同様にコンソールに記録されます。私はこのplnkrが問題をはっきりと示していると思う。
これについてのお手伝いをいただければ幸いです。
これは、おかげで素晴らしいです。しかし、もし 'item'だけでなく、もっと多くのデータを渡したいのであればどうでしょうか?たとえば、アイテムの 'index'やコンポーネントの別のプロパティです。 – garethdn
'index'は既に利用可能ですhttps://plnkr.co/edit/I00K8fSCp45n8Fvg0QV?p=preview他のプロパティについては、' ngOnInit'に 'items'配列を用意してください。 – yurzui
' first'、 'last '、' index'など、配列の各 'item'にこれらのプロパティを直接追加する必要がありますか? – garethdn