我正在尝试创建一个基于角度材料选择组件(v10)的自定义多选组件,该组件具有虚拟滚动和组件覆盖内的自定义搜索输入。我还添加了一个mat-select-trigger
元素来显示所选项目的数量,而不是默认的所选项目列表。
这个stackblitz中提供了(几乎完全工作且没有样式)示例。
我遇到的问题与所选项目的显示值有关。
要复制该问题,您必须:
- 在项目列表中搜索(例如:)
55
并选择一个选项(例如item-55
) - 单击覆盖层外部以将其关闭
- 正如预期的那样,组件将显示
1 selected
,并且该项目将列在下面的Selected items列表中 - 重新打开列表,单击搜索字段
clear
按钮,然后单击覆盖层外部,再次将其关闭
该组件现在将显示Items
占位符,当它应该显示时1 selected
,因为该项目仍在Selected items列表中(并且它是在mat-select-trigger
元素中使用的这个列表)。
尽管如此,如果您重新打开列表并滚动到所选项目 ( item-55
),它将被选中。如果您随后在覆盖层外部单击以再次将其关闭,则会显示正确的值 ( 1 selected
)。
我知道这是与虚拟滚动相关的问题,但我一直无法找到解决方案或解决方法。
任何建议将不胜感激!