你好,我是新的Angular ,我希望初始化与现有的数组形式数组由多个对象在Angular 。我得到以下错误
找不到路径为的控件:'变量-〉0 -〉标识'
以下是我的HTML:
<form [formGroup]="myForm">
<div formArrayName="box">
<div *ngFor="let b of getForm(); let i = index">
<fieldset [formGroupName]="i">
<legend> <h3>FRUIT DETAILS {{ i + 1 }}:</h3> </legend>
<label>Fruit Name: </label>
<input [formControlName]="name" />
<label>Fruit Value: </label>
<input [formControlName]="value" />
</fieldset>
</div>
</div>
<br />
</form>
<pre>{{ myForm.value | json }}</pre>
这是我的TS
myForm: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.myForm = this.fb.group({
box: this.fb.array([]),
});
let fruits = {
data: [{name: 'Apple', value: 10}, {name: 'Orange', value: 5},{name: 'Banana', value: 20}]
};
for (let f of fruits.data) {
const control = <FormArray>this.myForm.get('box');
control.push(this.fb.group({name: f.name, value: f.value}));
console.log(f);
}
this.myForm.patchValue({ box: fruits.data });
//console.log(this.myForm.value);
}
getForm(): any {
return this.myForm.get('box')['controls'];
}
1条答案
按热度按时间nimxete21#
我改变了两件事让它工作:
在TS文件中,我重构了
getForm()
方法,因为在我的新Angular 15项目中,您的代码似乎不再是可执行的。因此,您可以通过如下修改来防止潜在的未来问题:在HTML文件中,我删除了
formControlName
周围的括号,因为否则name
和value
将被解释为变量而不是字符串: