angular - 单击上一个 - Angular 6时,mat-stepper 重置前进步骤
问题描述
Angular 6 应用程序
stepper.component.html,
<mat-horizontal-stepper #stepper (selectionChange)="selectedStep($event)">
<ng-template matStepperIcon="edit">
<mat-icon>check_circle</mat-icon>
</ng-template>
<ng-template matStepperIcon="number" let-index="index">
<mat-icon>check_circle</mat-icon>
</ng-template>
<mat-step>
<ng-template matStepLabel >Fill</ng-template>
</mat-step>
<mat-step>
<ng-template matStepLabel >Validate</ng-template>
</mat-step>
<mat-step>
<ng-template matStepLabel>Complete</ng-template>
</mat-step>
</mat-horizontal-stepper>
stepper.component.ts,
@ViewChild('stepper') stepper: MatStepper;
stepIndex = 2;
ngAfterViewInit() {
this.stepper._steps.forEach((step, index) => {
const currentStepId = ++index;
if (this.stepIndex >= currentStepId) {
step.select(); //This will set the header selected state
}
});
}
selectedStep(matStep: any) {
const selectedStep = ++matStep.selectedIndex;
console.log(selectedStep);
}
上面的代码,将设置当 stepIndex 属性为 2 时选择的前两个步骤。
我想根据当前选择的步骤重置前进/后退步骤
If current step is 2. When step 1 is selected, I want to deselect/reset the step 2.
If current step is 1. When step 3 is selected, I want to set selected state for Step 2 also.
解决方案
我刚刚找到了另一种解决方案,它看起来好多了,并且可以自动执行该过程:
<mat-horizontal-stepper [linear]="true" #stepper (selectionChange)="clearNextSteps($event)">
<mat-step>
</mat-step>
<mat-step>
</mat-step>
<mat-step>
</mat-step>
<mat-step>
</mat-step>
</mat-horizontal-stepper>
并在组件中添加:
@ViewChild('cinemaStep') cinemaStep: MatStep;
@ViewChild('seatsStep') seatsStep: MatStep;
@ViewChild('servicesStep') servicesStep: MatStep;
@ViewChild('confirmStep') confirmStep: MatStep;
clearNextSteps(stepper): void {
const index = stepper.selectedIndex;
switch (index) {
case 0:
this.seatsStep.reset();
case 1:
this.servicesStep.reset();
case 2:
this.confirmStep.reset();
}
}
推荐阅读
- r - Shiny Apps FTP直接从代码上传数据帧而不在本地存储
- f# - 让 ParseAndCheckFileInProject 识别来自 Nuget 依赖项的符号
- reactjs - 导航到另一个页面以获取后退按钮导致底部选项卡消失并滑动错误的方向
- laravel - 在 Vue JS 中的其他组件中附加组件
- python - 无法访问 ip 0.0.0.0 和 ip 127.0.0.1
- angular - Nativescript/Angular 和 SignalR 的问题
- hivemq - 外部 IP 的 HiveMQ 设置
- xml - 使用 Exist-db 和 XSLTforms 将节点集插入文档
- mysql - SQL 全文索引和 SQL 注入
- .htaccess - 如何拒绝我的 OpenLiteSpeed 服务器中的所有虚拟主机访问 xmlrpc.php 文件?