跳过角度材料步进器中的步骤(取决于某些条件)

And*_*rew 5 angular-material angular

我有一个带有 Angular Material stepper 的 Angular 页面,其中每个步骤的内容都在一个独立的组件中:

<mat-horizontal-stepper [linear]="isLinear" #stepper>
  <mat-step [stepControl]="policyholder" state="phone">
    <ng-template matStepLabel>
     <span class="d-none d-sm-block">Policyholder</span>
    </ng-template>
    <policyholder></policyholder>
  </mat-step>

  <mat-step [stepControl]="policydetails">
    <ng-template matStepLabel><span class="d-none d-sm-block">Policy Details</span></ng-template>
    <policydetails></policydetails>
  </mat-step>

  <mat-step [stepControl]="paymentdetails">
    <ng-template matStepLabel><span class="d-none d-sm-block">Payment Details</span></ng-template>
    <paydetails></paydetails>
  </mat-step>
...
</mat-horizontal-stepper>
Run Code Online (Sandbox Code Playgroud)

每个步骤都有一些带有各种字段(输入、选择等)的表单。

我的问题是 - 根据第 1 步中的某些选择选项,是否可以跳过第 2 步并直接进入第 3 步?例如,只有在下面选择了“yesOption”?

或者,作为一个选项 - 使第 2 步不可见?

<mat-form-field appearance="outline" class=“someClass”>
  <mat-label>Some Condition</mat-label>

  <mat-select placeholder=“Some Select“ formControlName="someControl">
    <mat-option value=“yesOption”>Yes</mat-option>
    <mat-option value=“noOption”>No</mat-option>
  </mat-select>

</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

目前,我切换到下一步如下:

<button class="someClass" type="submit" [disabled]="policyholderForm.invalid" mat-button matStepperNext>Next Step</button>
Run Code Online (Sandbox Code Playgroud)

我试图用它selectedIndex来解决这个问题,但效果不佳。请告诉我如何做到这一点,提前致谢!

nay*_*kam 6

你可以用*ngIf. 根据步骤 1 中选择的值设置布尔型启用步骤 2 标志值。

<mat-step [stepControl]="policydetails" *ngIf="enableStep2">
    <ng-template matStepLabel><span class="d-none d-sm-block">Policy Details</span></ng-template>
    <policydetails></policydetails>
  </mat-step>
Run Code Online (Sandbox Code Playgroud)