首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在父组件中的角MatStepper上调用子验证器

在父组件中的角MatStepper上调用子验证器
EN

Stack Overflow用户
提问于 2021-01-04 05:00:48
回答 1查看 777关注 0票数 0

我想通过子组件验证器来验证我的Mat-Stepper App组件中的下一个功能,

我有三个不同的表单组件&每个组件都有自己的FormGroup、验证和组件中的下一步按钮

我正在调用父组件中的子组件& Mat-Stepper在父组件中存在

那么如何在MatStepper下一个函数中调用子组件的验证呢?子组件中有Next Button

就像如果表单是完整的或者有错误,那么它就不会让我们跳到下一个表单

父组件

代码语言:javascript
复制
----------------------------------------------
<mat-horizontal-stepper>
        <mat-step label="Form-1">
            <app-form1></app-form1>
        </mat-step>
        <mat-step label="Form-2">
            <app-form2></app-form2>
        </mat-step>
        <mat-step label="Form-3">
            <app-form3></app-form3>
        </mat-step>
</mat-horizontal-stepper>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-04 07:44:43

如果任何字段无效,则可以使用mat stepper的完整属性限制next按钮。

代码语言:javascript
复制
<mat-horizontal-stepper [linear]="true">
        <mat-step label="Form-1" [completed]="appForm1?.isCompleted ? true : false">
            <app-form1></app-form1>
        </mat-step>
        <mat-step label="Form-2" [completed]="appForm2?.isCompleted ? true : false">
            <app-form2></app-form2>
        </mat-step>
        <mat-step label="Form-3" [completed]="appForm3?.isCompleted ? true : false">
            <app-form3></app-form3>
        </mat-step>
</mat-horizontal-stepper>

在parent.ts组件中,需要添加子组件引用。

代码语言:javascript
复制
@ViewChild(AppForm1Component) public appForm1: AppForm1Component;
@ViewChild(AppForm2Component) public appForm2: AppForm2Component;
@ViewChild(AppForm3Component) public appForm3: AppForm3Component;

在您的每个组件中,您可以添加get属性isCompleted,它将返回验证和其他检查,无论您想为NEXT按钮添加什么。就像你的AppForm1Component.ts:

代码语言:javascript
复制
get isCompleted(): boolean {
     return (this.form.valid && other checks)
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65557870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档