Sam*_*dke 4 angular-material2 angular angular4-forms
我使用Angular Material 2 Stepper设置了一个线性步进器.
我有不同组件中的表单(组件-a,组件-b,组件-c).在我的主容器组件(容器组件)中,我希望线性步进器在其表单有效时"逐步"遍历每个组件.
是否有某种功能可以stepControl与步进器进行对话以使其正常工作?
我附上了步进器的文档和应用程序的StackBlitz版本.此外,我也有工作的回购链接.
Material Stepper组件:https://material.angular.io/components/stepper/overview
StackBlitz:https://stackblitz.com/edit/angular-material2-issue-mjmu9u ? file = app/app.component.ts
Github:https://github.com/sam11385
小智 11
我们遇到了完全相同的问题,经过几天的反复试验后找到了可行的解决方案.基本上,由于步骤分为几个组件,每个组件都定义一个表单,并且它们对应的stepControl必须在父组件中,因此必须将子组件中的FormGroup发送到定义步进器的父组件.创建FormGroup之后,发出一个事件并让父级监听该事件,并通过该事件传递FormGroup.您可以为所有子项应用此项,为每个子项创建一个单独的事件,并为每个子项创建一个单独的侦听器.
宣布活动
@Output() notify: EventEmitter<FormGroup> = new EventEmitter<FormGroup>();
Run Code Online (Sandbox Code Playgroud)将formGroup发送到父组件
this.notify.emit(this.myFormGroup);
Run Code Online (Sandbox Code Playgroud)在组件(.ts)中,添加一个将接收和设置formgroup的函数:
myFormGroup: FormGroup;
onNotify(formGroup: FormGroup): void {
this.myFormGroup = formGroup;
}
Run Code Online (Sandbox Code Playgroud)在html中,添加通知监听器:
<mat-step [completed]="false" [stepControl]="myFormGroup">
<ng-template matStepLabel>Step 1</ng-template>
<app-child (notify)='onNotify($event)'></app-child>
</mat-step>
Run Code Online (Sandbox Code Playgroud)嵌套组件说明:https://www.themarketingtechnologist.co/building-nested-components-in-angular-2/
| 归档时间: |
|
| 查看次数: |
6468 次 |
| 最近记录: |