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 及更高版本中可用。
通过设置 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 及更高版本中可用。