我有一个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')"/>
谢谢
答案 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)