12

我有一个mat-horizontal-stepper我将线性属性设置为 true 的地方。当所有步骤都有效时,我可以通过单击标题或标签导航到以前的步骤。我不想要那个财产。

我只需要通过按钮导航。

我尝试使用以下方法禁用指针功能:

    .mat-horizontal-stepper-header{
       pointer-events: none;
     }

但它没有奏效。

我需要通过单击标题来停止导航,或者在单击步进标题时触发一个功能。

4

7 回答 7

13

您最初发布的内容:

.mat-horizontal-stepper-header{
    pointer-events: none;
}

确实有效,只要您添加::ng-deep到 CSS 类。像这样:

::ng-deep .mat-horizontal-stepper-header {
    pointer-events: none !important;
}

还要确保您使用的是水平步进器而不是垂直步进器。这在调用适当的 CSS 类时显然很重要。

于 2018-11-07T19:34:22.647 回答
12

我遇到了和你类似的问题,我所做的是:

  1. 在 html 中,我将 [editable] 和 [completed] 配置为 false

<mat-step [completed]="false" [editable]="false">

  1. 在 .ts 文件中,对应的动作会触发如下:
this.stepper.selected.completed = true;
this.stepper.next();

当然,启用线性模式。

于 2019-03-14T04:10:33.250 回答
7

要获取标题点击事件,请使用此 -

<mat-horizontal-stepper (selectionChange)="stepClick($event)" [linear]="isLinear" #stepper="matHorizontalStepper">

在 ts 文件中的组件 -

stepClick(ev) {console.log(ev)}
于 2018-03-08T06:09:12.543 回答
4

将可编辑设置为 falsemat-step

<mat-step editable="false"> ... </mat-step>
于 2017-11-15T15:10:20.813 回答
3

要在单击步进器标题时触发功能,您可以订阅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)
    }
 }

When the selected step is the last one, you could use this to set editable = falsein all the previous steps:

this.stepper._steps.forEach(step => step.editable = false);
于 2017-12-06T15:41:31.837 回答
1

我试过这个但没有奏效。

 ::ng-deep .mat-horizontal-stepper-header {
        pointer-events: none !important;
    }

然后我尝试了这个。

.mat-step-header {
            pointer-events: none !important;
        }

这工作得很好。

谢谢你

于 2019-08-14T06:14:26.297 回答
-1

.mat-stepper-horizontal { pointer-events: none; }

于 2019-05-26T09:46:03.160 回答