Angular FormGroup不包含模型属性

时间:2019-07-17 10:37:34

标签: angular angular-reactive-forms

我有一个API,例如,它返回以下模型:

public class TestModel
{
    int Id { get; set; }

    public string UserName { get; set; }

    public string FirstName { get; set; }

    public string Surname { get; set; }

    public string DisplayName { get; set; }
}

我有一个带有以下FormGroup的Angular Reactive表单:

myForm = new FormGroup({
  id: new FormControl(),
  userName: new FormControl(),
  firstName: new FormControl(),
  surname: new FormControl()
});

当我将数据加载到表单中时,出现以下错误: 找不到名称为displayName的表单控件。

我知道控件不在我的表单组中,但我不希望它存在,因为我永远不会在表单上更改该值。有没有办法解决此问题,或者我需要将其添加到表单组中。

表单控件不是HTML的一部分,在Angular的任何地方都没有引用它,这就是我想要的。

<input type="text" [formControl]="myForm.get('userName')"/>
<input type="text" [formControl]="myForm.get('firstName')"/>
<input type="text" [formControl]="myForm.get('surname')"/>

谢谢

1 个答案:

答案 0 :(得分:2)

当html模板中的formControlName指令尝试在表单中查找给定名称时,会发生此错误。解决方案是从html中删除formControlName =“ displayName”。

这是评论中提到的功能

   createFormGroup(data?:any):FormGroup{
     return new FormGroup({
       id: new FormControl(data ? data.id : null),
       userName: new FormControl(data ? data.userName : ''),
       firstName: new FormControl(data ? data.firstName : ''),
       surname: new FormControl(data ? data.surname : '')
     })
    }

收到回复时使用它

myForm = this.createFormGroup(response)