禁用行选择,只允许在 PrimeNG 的 Mutliselect 中选择复选框

Disable row selection and just allow checkbox to be selected in Mutliselect of PrimeNG

我正在处理使用 PrimeNG 多选的需求。这个多选有一个复选框,后面跟着文本。我想禁用行选择,只允许选择这些行的复选框。下面是例子: Scenerio 解释截图:

如果我点击文本“1 text”、“2 text”等,这些值被选中但我想禁用此选择并且只允许选中复选框。

这里是供参考的 stackblitz 示例:Stackblitz Demo click here.

我在组件中使用的以下代码 html: <p-multiSelect [options]="items" defaultLabel="Select items" [showHeader]="false" </p-multiSelect>
下拉列表中使用的数组中项目的代码:

items: SelectItem[] = [
  { value: 1, label: '1 text' },
  { value: 2, label: '2 text ' },
  { value: 3, label: '3 text' },
 ];
}

勾选这个Stackblitz link


解决方案 1: 由于此选择是 primeNg multiSelect 的默认行为,因此对于 p-multiSelect 的 onChange 事件发射器,我将删除添加的值或在取消选择值时添加删除的值。

解决方案 2: 使用 event.stopPropagation() 但这仅在我单击标签但单击行仍然 select/deselect 值时有效。