Javascript 在父组件中的下一个组件上调用子验证器
我想通过子组件验证器验证我的Mat Stepper Next功能 我有3个不同的表单组件&每个组件都有自己的FormGroup、Validations和Next按钮 我正在调用父组件中的子组件&父组件中存在我的Mat Stepper 那么,请帮助我如何在MatStepper Next函数中调用子组件的验证? 子组件中有“下一步”按钮 比如,若表单已完成或有错误,那个么它将不允许我们跳转到下一个表单 父组件Javascript 在父组件中的下一个组件上调用子验证器,javascript,angular,typescript,Javascript,Angular,Typescript,我想通过子组件验证器验证我的Mat Stepper Next功能 我有3个不同的表单组件&每个组件都有自己的FormGroup、Validations和Next按钮 我正在调用父组件中的子组件&父组件中存在我的Mat Stepper 那么,请帮助我如何在MatStepper Next函数中调用子组件的验证? 子组件中有“下一步”按钮 比如,若表单已完成或有错误,那个么它将不允许我们跳转到下一个表单 父组件 ---------------------------------------------
----------------------------------------------
<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>
----------------------------------------------
如果任何字段无效,您可以使用mat stepper的completed属性来限制next按钮
<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>
在您的每个组件中,您可以添加get属性isCompleted,它将返回验证和其他检查,无论您想为“下一步”按钮添加什么。与AppForm1Component.ts类似:
get isCompleted(): boolean {
return (this.form.valid && other checks)
}
如果任何字段无效,可以使用mat stepper的completed属性来限制“下一步”按钮
<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>
在您的每个组件中,您可以添加get属性isCompleted,它将返回验证和其他检查,无论您想为“下一步”按钮添加什么。与AppForm1Component.ts类似:
get isCompleted(): boolean {
return (this.form.valid && other checks)
}
您可以将表单移动到父组件,并将引用传递给子组件。或者可以使用viewChild获取父组件中的组件实例。您可以将表单移动到父组件,并将引用传递给子组件。或者可以使用viewChild在父组件中获取组件实例我只需要在
这个.form.valid上调用matStepperNext
,如果我将matStepperNext
作为属性指令放在子窗体按钮中,它就会工作,但我只需要在onSubmit()中调用它,所以它只在窗体有效时工作,请建议我。。!isCompleted正在返回False
但仍允许导航到下一步,我在下一步按钮中使用matStepperNext
,无论其True
还是False
都允许我们导航到下一步问题已解决。。!!!刚刚在您的代码中添加了linear
属性
,谢谢您的帮助:)我只需要在这个.form.valid上调用matStepperNext
,如果我将matStepperNext
作为属性指令放在子表单按钮中,它就会工作,但我只需要在onSubmit()中调用它
因此只有在表单有效时才有效,请建议我。。!isCompleted正在返回False
但仍允许导航到下一步,我在下一步按钮中使用matStepperNext
,无论其True
还是False
都允许我们导航到下一步问题已解决。。!!!刚刚在代码中添加了linear
属性
,谢谢您的帮助:)