【问题标题】:enum value in edit form not set未设置编辑表单中的枚举值
【发布时间】:2020-07-13 03:17:31
【问题描述】:
我有一个包含一些数据的网格(在 stackblitz 示例中的一行)。数据模型是一个文档,具有优先级和货币属性。我用枚举实现了这个属性。然后我将这些枚举转换为数组,以便将它们用作 devextreme 选择框组件的数据源。
单击该行,编辑按钮将其状态更改为启用。单击编辑按钮,将显示一个带有表单的弹出窗口。选择框中的货币值设置正确,但优先级没有。我真的不明白,为什么?
您可以在此处找到 stackblitz 示例:https://stackblitz.com/edit/angular-dxpopup-3y6h4h
【问题讨论】:
标签:
angular
devextreme-angular
【解决方案1】:
Object.entries() 将键和值作为字符串提供。因此,convertEnumToArray 应该使用+ 将密钥转换为数字,如下所示,
convertEnumToArray(enumName: any, pipe: any) {
return Object.entries(enumName).filter(e => !isNaN(e[0] as any))
.map(e => ({ id: +e[0], value: new pipe()
.transform(enumName[e[1].toString()]) }));
}
这里是StackBlitz