2017-09-13 2 views
0

私はグリッド上で、どの行でもクリックすると表示されるコンテキストメニューを持っている必要があります。私は別のComponentで作成し、ComponentFactoryResolverViewContainerRefを使って表示し、このメニューの外をクリックするか閉じるボタンを押したときに破棄します。コンポーネントを毎回作成するか、onChangesイベントの変更を追跡しますか?

私はこれを別の方法でやることができると考えていました。最初にユーザーが任意の行を初めてクリックしたときにこのコンポーネントを作成する必要があります。後で行をクリックすると、コンポーネントは作成されず、OnChangesを使用して追跡され、渡された値が反映され、メニューが表示されます。

これで私は間違っていない場合、私の主要コンポーネントの破壊イベントでこのメニューコンポーネントを破壊する必要があります。どのような体でも、どちらの方法が良いか提案することができますか、それを行うためのより良い方法があります。

+0

達成しようとしていることを示すコードを投稿してください。プロッサーだけではっきりとした画像を得るのは難しいです。 '* ngFor'を使うだけで、バインドされている配列にアイテムを追加/削除することもできます。 –

答えて

1

コンテキストメニューに別のコンポーネントがあることをお勧めします。しかし、ユーザーのクリックで新しいコンポーネントを作成するたびに、アプリケーションのパフォーマンスが影響を受けます。私はちょうどあなたが1つのコンポーネントを持って、そのコンポーネントを隠す/表示することをお勧めします、毎回作成しないでください。

また、コンポーネントのChangeDetectionStrategyを変更して、アプリケーションのパフォーマンスをさらに向上させることができます。

+0

ええ、私は同じ考えをしていた。これを回答としてマークします –

関連する問題