反应形式value是类型{“ value”:“ therealname”}的对象,而不仅仅是“ therealname”

时间:2019-06-11 21:40:29

标签: angular angular-reactive-forms

模板代码:

<div>name: {{fg.get('name').value | json}}</div>

当我使用

创建反应形式时

#1 以下代码

this.fg = this.fb.group({name: "therealname"});

div有

name: therealname

#2 ,但是具有以下任一条件

this.fg = this.fb.group({name: [{ value: "therealname"}] });
this.fg = this.fb.group({name: this.fb.control({ value: "therealname"}) });

div拥有

name: {"value": "therealname"}

..让我的头皮腾飞(由于刮擦)。

#2 没什么意义,therealname位于  fg.get('name').value.value !!?!

注意:选择#2 的原因是,这有助于在创建disabled时添加fg选项。

1 个答案:

答案 0 :(得分:0)

formBuilder也可以容纳对象,这就是您在情况2中传递的内容。当您有一个要显示的复杂对象时,该功能非常有用,它除了提供ID外还提供一个计算的自定义值,例如id。一方面,它非常灵活,但另一方面,您应该为用例使用正确的语法:

this.fg = this.fb.group(this.fb.control({name: "therealname"})

或您建议的:

this.fg = this.fb.group({name: "therealname"});