私は、このコードは、私はすぐにやっているまさにだ
import { FormArray, FormBuilder, FormGroup} from '@angular/forms';
export class SomeComponent implements OnInit {
consutructor(public fb:FormBuilder) { }
public buildcollaboratorsGroup(fb:FormBuilder):FormGroup {
return fb.group({
email:'',
role:''
});
}
ngOnInit() {
public settingsForm: FormGroup = this.fb.group({
collaborators:this.fb.array([this.buildcollaboratorsGroup(this.fb)])
});
this.setFormArrayValue();
}
// I am trying set only one value if it's multiple use foreach
public setFormArrayValue() {
const controlArray = <FormArray> this.settingsForm.get('collaborators');
controlArray.controls[0].get('email').setValue('[email protected]');
controlArray.controls[0].get('role').setValue(2);
}
// I am trying remove only one value if it's multiple use foreach
public removeFormArrayValue() {
const controlArray = <FormArray> this.settingsForm.get('collaborators');
controlArray.removeAt(0);
}
}
に役立つと思います。あなたはon initフックでそれをする必要はありません。 – Chrillewoodz
私は似たような問題を抱えていましたが、これで解決しました。私はそれが同じ問題だと思っていた:(。この[ブログ投稿](https://toddmotto.com/angular-2-form-controls-patch-value-set-value)をチェックしましたか?存在する場合、AngularはObject.keysループに移動しますが、まず_throwIfControlMissingを介してその値のコントロールが欠落していることを確認します: " – mickdev
フォームグループが不足しているため、すべてのオブジェクトをループしなければならなかった新しいグループをそれぞれフォームアレイにプッシュしてください。ちょっとした迷惑なデザイン選択。 – Chrillewoodz