沒有FormBuilder
它很難做到真正的復,但你可以做一些事情:
父組件:
<form>
<level-1 [val]="myVal"></level-1>
</form>
級別1:
<level-2 [val]="val"></level-2>
級別2:
<textarea [(ngModel)]="val.someProp"></textarea>
然後,只需添加@Input() val: any
到level-1
和level-2
組件。
所以,當你「重置」你的myVal
對象重置爲初始值。這對兒童也會生效。
旁註:我不確定是否必須更新對象引用以使其生效,但是您可以在需要時使用this.myVal = Object.assign({}, this.myVal)
來執行此操作。
你也應該叫resetForm
在<form>
標籤,當您提交。因此,像:
<form #form="ngForm" (ngSubmit)="save()"></form>
@ViewChild('form') form;
save(): void {
this.form.resetForm()
}
編輯:
隨着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