私はmat-horizontal-stepper
ここで、線形プロパティをtrueに設定します。すべてのステップが有効になった時点で、ヘッダーまたはラベルをクリックして前のステップに移動できます。そのプロパティは必要ありません。
ボタンだけをナビゲートする必要があります。
私はポインタ機能を無効にしてみました:
.mat-horizontal-stepper-header{
pointer-events: none;
}
しかし、うまくいきませんでした。
ヘッダーをクリックしてナビゲーションを停止するか、ステッパーヘッダーをクリックして関数を起動する必要があります。
最初に投稿したもの:
.mat-horizontal-stepper-header{
pointer-events: none;
}
::ng-deep
をCSSクラスに追加する限り機能します。このような:
::ng-deep .mat-horizontal-stepper-header {
pointer-events: none !important;
}
また、vertical oneではなくhorizontalステッパーを使用していることを確認してください。これは、適切なCSSクラスを呼び出すときに明らかに重要です。
ヘッダーをクリックしてイベントを取得するには、これを使用します-
<mat-horizontal-stepper (selectionChange)="stepClick($event)" [linear]="isLinear" #stepper="matHorizontalStepper">
Tsファイルでコンポーネント-
stepClick(ev) {console.log(ev)}
mat-step
のeditableをfalseに設定します
<mat-step editable="false"> ... </mat-step>
私はあなたと同じような問題を抱えていました、そして私がやったことは:
<mat-step [completed]="false" [editable]="false">
this.stepper.selected.completed = true;
this.stepper.next();
そしてもちろん、線形モードを有効にしました。
ステッパーヘッダーをクリックしたときに関数を起動するには、MatStepper.selectionChange
。ステップを切り替えるときに出力され、前のステップと選択したステップに関する情報を提供します。
html:
<mat-horizontal-stepper #stepper[linear]="true">
<mat-step label="firstStep">
...
</mat-step>
</mat-horizontal-stepper>
ts:
class ExampleComponent implements OnInit {
@ViewChild('stepper') stepper: MatStepper;
ngOnInit() {
this.stepper.selectionChange.subscribe(selection => {
console.log(selection.selectedStep)
console.log(selection.previouslySelectedStep)
}
}
選択したステップが最後のステップである場合、これを使用してeditable = false
前のすべてのステップ:
this.stepper._steps.forEach(step => step.editable = false);
私はこれを試しましたが、うまくいきませんでした。
::ng-deep .mat-horizontal-stepper-header {
pointer-events: none !important;
}
それから私はこれを試しました。
.mat-step-header {
pointer-events: none !important;
}
これは絶対にうまくいきました。
ありがとうございました