Html Angular 4.3-在子组件中实现枚举的正确方法?

Html Angular 4.3-在子组件中实现枚举的正确方法?,html,angular,enums,angular4-forms,Html,Angular,Enums,Angular4 Forms,今天,我在contact.component中部署了一个枚举,无法从中访问所选值。它是表单的一部分。下面是我如何实现枚举的: contact.component.ts(仅摘录相关代码) 因此,我的联系人组件的HTML类如下所示: contact.component.html(仅提取相关代码) 网上联络表格 接触类型: {{contactType[key]} 名字: {{alertFirstName}} ... 非常感谢-已发送消息-详情如下: {{contactType}} 名字:{{

今天,我在contact.component中部署了一个枚举,无法从中访问所选值。它是表单的一部分。下面是我如何实现枚举的:

contact.component.ts(仅摘录相关代码)

因此,我的联系人组件的HTML类如下所示:

contact.component.html(仅提取相关代码)


网上联络表格

接触类型:
{{contactType[key]}

名字:

{{alertFirstName}} ... 非常感谢-已发送消息-详情如下: {{contactType}} 名字:{{firstName}} 姓氏:{{lastName} 电子邮件地址:{{Email} 联系电话:{{contactNumber} 注释:
{{Comment}


因此,上面的样式化代码在Chrome、Safari和Firefix上的我的联系人表单中以下拉列表的形式非常整齐地显示枚举。我遇到的问题是所选值,我似乎无法访问下拉列表中所选的值并将其添加到单击“提交”按钮时显示的模板(提交后)中。在Angular 4.3中,是否有一个方法.Selected()可以与枚举一起使用以将所选值放入变量?

看起来您使用的是ReactiveForms,但您没有一个
FormControl
来保存select的值

this.rForm = this.formBuilder.group({
  'select': []
  ...
});
对于html

<select formControlName="select">
  ...
</select>

您需要使用formControlName或双向绑定[(ngModel)]

字符串枚举是在TypeScript 2.4中引入的。好了,Angular仍然不支持2.4。

你敢打赌Chris。。我尝试了一百万种方法让它工作,并且知道(像往常一样..哈哈)它可以归结为一两行代码。。。我传递了提交的枚举类型
this.contactType[this.rForm.get('select').value]
转换为字符串值,并将其传递到post对象中,它将起到处理作用!还添加了
formControlName
,因为我昨天已将其取出一百万次并将其还原。枚举现在在Chrome、Safari和Firefox中工作,但在Chrome和Firefox中,默认的“选择一个”值不会显示为默认的下拉值。在完成前端后,如果我有时间的话,将再次访问此。。非常感谢你的帮助,兄弟!非常感谢!谢谢亚科夫提供的信息。。我让它按照上面的工作,但这是一个真正的麻烦。。。需要一个专用的enumHelperClass(),包括字符串枚举。。在我看来,字符串枚举太有用了,不能满足框架级别的需要。NET在Razor中有一个很好的类,用于处理MVC5.1之后的枚举,例如@Html。枚举(…)
this.rForm = this.formBuilder.group({
  'select': []
  ...
});
<select formControlName="select">
  ...
</select>
this.contactType[this.rForm.get('select').value];