我希望步进器中的某个步骤具有协议,但不希望多余的按钮显示“我同意我刚刚检查过的内容”。只需单击复选框然后转到。
使用标准的Angular示例,我将按钮换成了一个复选框,并且步进器不会向前移动。
<button mat-raised-button (click)="isLinear = !isLinear" id="toggle-linear">
{{!isLinear ? 'Enable linear mode' : 'Disable linear mode'}}
</button>
<mat-vertical-stepper [linear]="isLinear" #stepper>
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Agree with Terms</ng-template>
<div>
<mat-checkbox matStepperNext formControlName="firstCtrl" required> I agree </button>
</div>
</form>
</mat-step>
<mat-step [stepControl]="secondFormGroup">
<form [formGroup]="secondFormGroup">
<ng-template matStepLabel>Fill out your address</ng-template>
<mat-form-field>
<input matInput placeholder="Address" formControlName="secondCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
<mat-step>
<ng-template matStepLabel>Done</ng-template>
You are now done.
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button (click)="stepper.reset()">Reset</button>
</div>
</mat-step>
</mat-vertical-stepper>
期望单击复选框,并使步进器直接移至步骤2。
答案 0 :(得分:0)
我知道了。关键字matStepperNext似乎不适用于复选框。但是,如果在复选框HTML中,您在步进器的div中包括#stepper…
<mat-vertical-stepper #stepper [linear]="isLinear">you include a (change) event calling a function...
您可以添加一个(更改)事件,该事件调用具有该名称的函数...
<mat-checkbox matStepperNext (change)="goForward(stepper);" formControlName="firstCtrl" required> I agree </button>
然后,在.ts中,确保包括...
import { MatStepper } from '@angular/material/stepper';
...然后添加此功能...
goForward(stepper: MatStepper){
stepper.next();
}
当您单击复选框时,它应该前进到下一步。