FormArrayオブジェクトのエントリであるFormGroupオブジェクトを詳細にコピーしたいと思います。FormArrayエントリをAngular2のリアクティブフォームでディープコピーする方法
オブジェクトをタイプコピーでディープコピーする推奨方法を使用していますが、依然として元のオブジェクト参照を指しています。 私はすべての単一のフィールドを1つずつコピーすることで問題を解決できました。しかし、これを達成するためのより良いアプローチがあるかどうかを知りたいと思います。ここで
はコメント行が期待通りに深いコピー動作を実行しなかった一つであり、私のコードです:
edit(i):void{
this.activeEntry=i;
const mycontrol = <FormArray>this.languagesForm.controls['languages'];
const mylanguage=<FormGroup>mycontrol.get([i]);
//this.languageEditForm = Object.assign(new FormGroup({}),<FormGroup>mycontrol.get([i]));
this.languageEditForm = this.fb.group({
name:mylanguage.get('name').value,
type:mylanguage.get('type').value,
listening:mylanguage.get('listening').value,
reading:mylanguage.get('reading').value,
speaking:mylanguage.get('speaking').value,
writing:mylanguage.get('writing').value
});
console.log(this.languageEditForm.value);
this.showDialog();
}