【发布时间】:2019-02-08 02:09:30
【问题描述】:
我使用 matStepper,当我将 selectedIndex 设置为 3 时,我无法使用下一个和上一个导航。我可以单击水平步进器中的 (1),然后像往常一样使用下一个/上一个。所有表格均有效,单击 (1) 后,我可以使用 1-7 中的下一个进行导航。
注意我有 this.selectedIndex = 3;硬编码
<mat-horizontal-stepper #stepper
[linear]="true"
[selectedIndex]="this.selectedIndex"
(selectionChange)="selectionChange(stepper)">
<mat-step [stepControl]="form1">
<app-observer-information></app-observer-information>
</mat-step>
...
<mat-step [stepControl]="form7">
<app-observer-agreement></app-observer-agreement>
</mat-step>
</mat-horizontal-stepper>
export class ObservationStatementStepperComponent implements OnInit {
@ViewChild('ObserverInformationComponent') public component1: ObserverInformationComponent;
..
@ViewChild('ObserverAgreementComponent') public component7: ObserverAgreementComponent;
public selectedIndex: number;
constructor(private sorDataService: SorDataService) {
this.selectedIndex = 3; // Number(sorDataService.selectedIndex);
}
public ngOnInit() {
}
public selectionChange(stepper) {
this.sorDataService.synchronizeStepper(stepper.selectedIndex + 1);
}
/**
* @see https://stackoverflow.com/questions/48498966/angular-material-stepper-component-for-each-step
*/
get form1() {
return this.component1 ? this.component1.form : null;
}
...
get form7() {
return this.component7 ? this.component7.form : null;
}
}
问题在 stackblitz 中重现
<mat-horizontal-stepper linear #stepper [selectedIndex]="1">
https://stackblitz.com/edit/angular-syml71?file=app/create-profile.component.html
【问题讨论】:
-
问题是因为 [linear]="true"。当您将此设置为 false 时,您的代码将正常工作。
-
但是我不能使用 prev next 验证.. 你有关于如何解决这个问题的建议
-
你的 stackblitz 演示有什么问题? @RicardoSaracino
-
下一个按钮不起作用
标签: angular angular-material angular6 angular-material-stepper