Est-il possible de réinitialiser (ou simplement de sauter à la première étape) à l'intérieur d'un stepper ? Ce n'est pas documenté dans la documentation, mais est-il possible de le faire? Il est indiqué dans la documentation que le moteur pas à pas est construit sur "CDK Stepper" ( lien ?), Mais je ne trouve aucun exemple qui me conduise à mon objectif.
Ok, il semble que j'ai trouvé une solution (mais ce n'est pas indiqué nulle part dans l'API).
ViewChild
avec la référence dans votre fichier TypeScript.HTML:
<mat-horizontal-stepper [linear]="true" #stepper>
<!-- Content here -->
</mat-horizontal-stepper>
TS:
import { Component, ViewChild } from '@angular/core';
@Component({
// ...
})
export class AppComponent {
@ViewChild('stepper') stepper;
/**
* Changes the step to the index specified
* @param {number} index The index of the step
*/
changeStep(index: number) {
this.stepper.selectedIndex = index;
}
}
Il est possible de sauter à un stepper spécifique.
MatStepper
expose une propriété publiqueselectedIndex
qui spécifie l'index de pas actuellement sélectionné. Il peut être réglé. L'index commence à 0.
Dans votre modèle:
Ajoutez un identifiant à votre stepper, par exemple. #stepper
_ . Ajoutez ensuite un bouton dans votre étape et transmettez l’identifiant stepper dans une fonction sur (click)
comme ci-dessous:
<mat-horizontal-stepper [linear]="isLinear" #stepper>
<!-- Your other steps here -->
<mat-step [stepControl]="secondFormGroup">
<!-- Content in the step -->
<div>
<!-- Other actions here -->
<button mat-button (click)="resetStepper(stepper)">Reset</button>
</div>
</mat-step>
<!-- More steps here -->
</mat-horizontal-stepper>
.. et dans votre TypeScript:
import { MatStepper } from '@angular/material';
exported YourOwnComponent {
constructor() {}
resetStepper(stepper: MatStepper){
stepper.selectedIndex = 0;
}
}