跳过Angular Material步进器中的步进(取决于某些条件)

时间:2019-01-09 03:44:09

标签: angular angular-material

我有一个带有Angular Material步进器的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>

每个步骤都具有包含不同字段(输入,选择等)的某些形式。

我的问题是-根据步骤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>

当前,我切换到下一步,如下所示:

<button class="someClass" type="submit" [disabled]="policyholderForm.invalid" mat-button matStepperNext>Next Step</button>

我尝试使用selectedIndex解决此问题,但效果不佳。请先告诉我该怎么做,谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用*ngIf。根据在step1上选择的值来设置boolean enableStep2标志值。

<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>