【发布时间】:2020-09-06 01:58:24
【问题描述】:
我正在将一个集合数据绑定到主要的 NG 下拉列表。
<p-dropdown [options]="statusTypes" formControlName="StatusTypeCode" optionLabel="Name">
</p-dropdown>
我将 formControlName 设置为这个下拉列表,效果很好。唯一的问题是表单设置了整个对象(例如:statusTypes[2])。我希望表单为所选值指定一个值,而不是整个对象(例如:statusTypes[2].StatusTypeCode)
我知道我可以在设置选项之前重新创建它们...
this.statusTypes= [];
for (let statusType of this.allStatusTypes) {
this.statusTypes.push({ label: (statusType.Name), value: statusType.StatusTypeCode });
}
但是我必须在每个下拉集合上都这样做!
HTML 中是否有任何方法可以将下拉列表的值指定为等于属性(例如:optionValue="StatusTypeCode"),以便我可以使用 id 而不是整个对象填充表单?
【问题讨论】:
-
Primeng 本身并没有提供一种方法来完成您的要求。但是,可以通过在
p-dropdown周围创建一个包装器来实现这种行为,该包装器具有optionValue通过实现ControlValueAccessor