は、私がこのような反応性の形式があります。角度4:setValueのformBuilder空の配列
constructor(...){
this.form = this.formBuilder.group({
name: ['', Validators.compose([Validators.required, Validators.maxLength(50)])],
memes: this.formBuilder.array([
this.initMemes('TrollFace')
])
});
}
initMemes (name?) {
return this.formBuilder.group({
id: [''], name: [name]
});
}
後、私は追加することができますが、いくつかのより多くのmemes
:
addMemes() {
const control = <FormArray>this.form.controls['memes'];
control.push(this.initMemes('anyName'));
}
と私はフォームの値を取得する場合、私は得る:
this.form.controls['memes'].value
- ここに私は配列を持っています
しかし、私はこれを必要とする場合がありますthis.form.controls['memes'].value
を空の配列に設定するにはどうしたらよいですか?私は間違って何をすべきかMust supply a value for form control at index: 0.
:私はエラーを得た
this.form.controls['memes'].setValue([])
:
は、私はそれをこのように設定した場合は? setControl()
、reset()
が、以下は私が実際に[]
に配列全体をリセットすることを仕事に見つけた唯一の解決策だった、他のオプションが働いていたが、彼らは場所にformgroupsを残し、単に値を空に:
は、私はそれがcontrol.controls.removeAt(i)をすべきだと思います。 console.log(control)には名前コントロールを持つ配列があるので、そうでないと "nullのプロパティ 'enabled'を読み取ることができません。 – Jassi