FormBuilder
がなければ、それは実際のリセットを行うことが難しくなっていますしかし、あなたは次のようにすることができます:
親コンポーネント:
<form>
<level-1 [val]="myVal"></level-1>
</form>
レベル1:
<level-2 [val]="val"></level-2>
レベル2:
<textarea [(ngModel)]="val.someProp"></textarea>
単にlevel-1
とlevel-2
コンポーネントに@Input() val: any
を加えます。
「リセット」するとmyVal
オブジェクトが元の値にリセットされます。これは子供たちにも同様に有効です。
サイドノート:オブジェクト参照を有効にするためにオブジェクト参照を更新する必要があるかどうかは分かりませんが、必要な場合はthis.myVal = Object.assign({}, this.myVal)
でそれを行うことができます。
<form>
タグにはresetForm
もお電話する必要があります。だから、何かのように:
<form #form="ngForm" (ngSubmit)="save()"></form>
@ViewChild('form') form;
save(): void {
this.form.resetForm()
}
EDIT:FormBuilder
で
は、あなたがしたい:
親コンポーネント:
public form: FormGroup = this.fb.group({
someProp: ''
});
<form [formGroup]="form">
<level-1 [val]="form"></level-1>
</form>
レベル1:
<level-2 [val]="val"></level-2>
を
レベル2:その後、
<div [formGroup]="val">
<textarea formControlName="someProp"></textarea>
</div>
そしてthis.form.reset()
でフォームをリセット。
FormBuilderを使用していますか? – Chrillewoodz
子コンポーネントで@Inputを使用することができ、入力に基づいてフォームを消去することができます – Sreemat
@Chrillewoodz私たちは今のところFormBuilderを使用していません。 – xameeramir