1

コンポーネントのオーバーレイ内に仮想スクロールとカスタム検索入力を使用して、angular-material select コンポーネント (v10) に基づいて、カスタムの複数選択コンポーネントを作成しようとしています。mat-select-triggerまた、選択されたアイテムのデフォルトのリストの代わりに、選択されたアイテムの数を表示する要素を追加しました。

(ほぼ完全に機能し、スタイリングなしの) サンプルは、このstackblitzにあります。

私が抱えている問題は、選択したアイテムの表示値に関連しています。

問題を再現するには、次のことを行う必要があります。

  1. アイテムのリストを検索し (例: 55)、オプションを選択します (例: item-55)
  2. オーバーレイの外側をクリックして閉じます
  3. 予想どおり、コンポーネントが表示1 selectedされ、アイテムが下の [選択されたアイテム]リストに表示されます。
  4. リストを再度開き、検索フィールドclearボタンをクリックしてから、オーバーレイの外側をクリックして再度閉じます。

コンポーネントは、表示されItemsているはずのときにプレースホルダーを表示します1 selected。これは、項目がまだ [選択された項目]リストにあるためです (要素で使用されているのはこのリストですmat-select-trigger)。

それでも、リストを再度開いて選択した項目 ( item-55) までスクロールすると、その項目が選択されます。オーバーレイの外側をクリックして再度閉じると、正しい値が表示されます ( 1 selected)。

仮想スクロール関連の問題であることは理解していますが、解決策や回避策を見つけることができませんでした。

どんな提案でも大歓迎です!

4

0 に答える 0