【发布时间】:2023-03-13 16:19:01
【问题描述】:
我在父模板中有两个按钮。一个按钮充当父/子表单的提交。另一个应该验证子组件表单。单击提交按钮验证两者 - 没关系。但是,我无法获得另一个按钮来验证我的子组件表单。本质上,仅在单击“检查电话”按钮时才显示子表单所需的错误。
父模板:
<form id="sampleform" [formGroup]="sampleForm" (ngSubmit)="formsubmit()">
<mat-form-field>
<input matInput type="text" formControlName="name" [errorStateMatcher]="matcher">
<mat-error *ngIf="sampleForm.controls.name.hasError('required') && isShowErrors">This field is invalid</mat-error>
</mat-form-field>
<br/>
<br/>
<child-component [isShowErrors]="isShowErrors"></child-component>
</form>
<button type="button">Check phone</button> <br/>
<button type="submit" form="sampleForm" (click)="formsubmit()">Submit</button>
父组件 TS:
export class AppComponent{
isShowErrors: boolean = false;
sampleForm: FormGroup;
matcher = new MyErrorStateMatcher();
constructor(private fb: FormBuilder){
}
ngOnInit(){
console.log(">>>>")
this.sampleForm = this.fb.group({
name: ['', Validators.required]
});
}
formsubmit(){
this.isShowErrors = true;
console.log(this.sampleForm);
if(this.sampleForm.valid){
//navigate
}
}
}
子组件模板:
<form [formGroup]="sampleChildForm">
<mat-form-field>
<input matInput type="text" formControlName="phone" [errorStateMatcher]="matcher">
<mat-error *ngIf="sampleChildForm.controls.phone.hasError('required') && isShowErrors">Test Error</mat-error>
</mat-form-field>
</form>
Stackblitz:https://stackblitz.com/edit/angular-gyzaag
【问题讨论】:
标签: angular