Select 硬编码选项 ngModel 的标签默认值

Select tag default value in case of hardcoded options mgModel

通过设置 this.model.type = OPTION_NR1 选择一个值,angular 将 HTML 中的 HTML 属性 ng-reflect-model 设置为 0,这是默认的枚举值和 Option1。 HTML 属性的正确值是 OPTION_NR1,它用 Option1 填充下拉列表而不是将其留空。

当前设置的作用<select .. ng-reflect-model="0">
它应该做什么<select .. ng-reflect-model="OPTION_NR1">

<select [(ngModel)]="model.type"  required>
   <option value="OPTION_NR1" >Option1</option>
   <option value="OPTION_NR2" >Option2</option>
</select>

我不知道我是否理解你的意思。但似乎您希望 model.type 字段是一个字符串而不是代表枚举索引的 0。

所以我假设你的 Enum 被命名为 "Types"。试试这样:

this.model.type = Types[this.model.type];

如果这不是您所期望的,请更具体。

更新您的枚举以使用 TypeScript's string enum

如果您的枚举如下所示:

export const enum Type {
    'OPTION_NR1',
    'OPTION_NR2'
}

改为:

export const enum Type {
    OPTION_NR1 = 'OPTION_NR1',
    OPTION_NR2 = 'OPTION_NR2'
}

这是在 this pull request 的生成器中完成的,在 v5.0.0-beta.1 及更高版本中可用。