爲什麼我一直得到這個錯誤?我認爲我做的一切都對嗎?FormArray TypeError:value.forEach不是函數
「例外:未捕獲(在承諾):類型錯誤:value.forEach不是函數 類型錯誤:value.forEach不在FormArray.setValue一個函數」
組件類:
jobDetails: FormGroup;
techFormArray: FormArray;
constructor(private formBuilder: FormBuilder){
this.techFormArray = new FormArray([
new FormControl(''),
new FormControl(''),
new FormControl('')
]);
this.jobDetails = this.formBuilder.group({
techs: this.formBuilder.array([])
});
this.jobDetails.setValue({
techs: this.techFormArray
});
}
HTML:
<form [formGroup]="jobDetails">
<div formArrayName="techs" >
<div style="display: flex; flex-direction: column">
<div *ngFor="let tech of techFormArray.controls; let i=index">
<md-checkbox [formControlName]="i">
{{i}}
</md-checkbox>
</div>
</div>
</div>
</form>
SOLUTION:
FunStuff有正確的,我不能使用setValue ....所以我刪除它。問題解決了哈哈。我改變了幾件事情,我不確定我做了什麼,它幾乎是幾個小時的暴力試驗和錯誤,但後來它工作! :)
這是工作版本!
jobDetails: FormGroup;
constructor(private formBuilder: FormBuilder){
this.jobDetails = formBuilder.group({
techs: formBuilder.array([
formBuilder.control(''),
formBuilder.control('')
])
});
}
新的HTML:
<form [formGroup]="jobDetails">
<div formArrayName="techs" >
<div style="display: flex; flex-direction: column">
<div *ngFor="let tech of jobDetails.controls.techs.controls; let i=index">
<md-checkbox [formControlName]="i">
{{i}}
</md-checkbox>
</div>
</div>
</div>
</form>
分別是代碼中的每個功能..一些,你試圖控制.value.foreach funtion – mayur
這樣的東西: - 'this.techFormArray.value.forEach(()=> {/ ** /}' – mayur
這是導致錯誤的組件。沒有告訴它使用循環,但我認爲FunStuff的答案可能是爲什麼。我今天會看看。 – Jus10