我需要动态表单中的值,但总是显示这个错误"ERROR Error: control.registerOnChange is not a function“
我像这样构建我的表单:
referential.values.forEach(referentialValue => {
const newFormGroup = new FormGroup({
value: new FormControl(referentialValue.value),
libelle: new FormControl(referentialValue.libelle),
primaryColor: new FormControl(referentialValue.primaryColor),
secondaryColor: new FormControl(referentialValue.secondaryColor),
borderColor: new FormControl(referentialValue.borderColor),
default: new FormControl('')
});
this.referentialArray.push(newFormGroup);
});
this.form = new FormGroup({
referentials: this.referentialArray
});
this.form.disable();
和html (不是整个):
<tbody formArrayName="referentials">
<tr *ngFor="let referential of referentialArray.controls; let i = index">
<td><input type="text"
[formControlName]="i"></td>
<td><input type="text"
[formControlName]="i"></td>
有什么想法吗?
发布于 2021-07-23 21:22:11
您已关闭,请在引用循环中将formControlName
更改为formGroupName
。
它看起来像这样:
<form [formGroup]="myForm" (ngSubmit)="submit(myForm.value)">
<div formArrayName="referentials">
<div *ngFor="let child of myForm.get('referentials').controls; let i = index">
<div [formGroupName]="i">
<label>{{i+1}}. Label: </label>
<input formControlName="label" /><br>
<label>{{i+1}}. Value: </label>
<input formControlName="value" />
</div>
<br>
</div>
</div>
<button type="submit">Submit</button>
</form>
发布于 2021-07-23 21:22:01
我认为this.referentialArray是一个简单的数组
this.form = new FormGroup({
referentials: this.referentialArray
});
你能试试下面这样的东西吗?
this.form = new FormGroup({
referentials: new FormArray([])
});
var refFormArray = this.form.get('referentials') as FormArray;
referential.values.forEach(referentialValue => {
const newFormGroup = new FormGroup({
value: new FormControl(referentialValue.value),
libelle: new FormControl(referentialValue.libelle),
primaryColor: new FormControl(referentialValue.primaryColor),
secondaryColor: new FormControl(referentialValue.secondaryColor),
borderColor: new FormControl(referentialValue.borderColor),
default: new FormControl('')
});
refFormArray.push(newFormGroup);
});
https://stackoverflow.com/questions/68499579
复制相似问题