我有一个带有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
解决此问题,但效果不佳。请先告诉我该怎么做,谢谢!
答案 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>