【问题标题】:How to disable primeng multiselect dropdown options of respective multiselect dropdown when a value is changed in a loop如何在循环中更改值时禁用相应多选下拉列表的primeng多选下拉选项
【发布时间】:2021-11-19 09:23:20
【问题描述】:

我在一个表格中使用primeng v6.x 多选,其中数据在循环中动态呈现。

我的选项数组如下所示:

let data = [
  { key: "ALL", desc: "All", disabled: false },
  { key: "PQR", desc: "Pqr", disabled: false },
  { key: "XYZ", desc: "Xyz", disabled: false }
];

我在[options]="data" 中传递上述数组。 我有一个添加按钮,当点击一个新的行将被添加到表格中。

预期行为: 选择"ALL"选项时,我将禁用属性更改为true,其中它应该仅在该特定行的下拉列表中禁用剩余选项。

问题: 它禁用所有表行中的所有剩余选项,包括原始变量。请给我建议解决方案。

HTML:

<p-multiSelect [options]="data" (onChange)="changeEvent($event)" optionLabel="desc" dataKey="key" [formControl]="dataListControl"></p-multiSelect>

是的,我在选项中传递了一个公共变量。在添加新行并将数据绑定到选项时尝试了不同的方法,例如创建新控件(不确定它是否正确),它也会更新原始变量值。请建议如何使特定行的可选值唯一。

【问题讨论】:

  • 你能分享你的html代码吗,我想你在ngmodel绑定中使用了一个公共变量
  • 更新了 html 代码,我正在使用响应式表单
  • 你可以使用 formArray 或者check this answer
  • 我已经在使用 formArray,其中 控件将成为 formArray 的一部分。那么如何在 formArray 中的每个 控件中传递相同的选项,这些选项在处理禁用选项时应该是唯一的?

标签: angular primeng primeng-dropdowns


【解决方案1】:
  • 如果您使用的是formArray,那么它应该一直在工作,请您分享您的html和ts文件,以便我检查导致问题的原因,现在您只分享组件和它的选项,所以很难理解。如果您创建一个 stackblitz 会很棒。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多