dc-*_*-p8 10 angular-material angular-material2 angular
我想这样做 :
<ng-template #content>
<mat-step>step 1</mat-step>
<mat-step>step 2</mat-step>
</ng-template>
<mat-horizontal-stepper>
<ng-container *ngTemplateOutlet="content"></ng-container>
</mat-horizontal-stepper>
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误
错误错误:StaticInjectorError(AppModule)[MatStep - > MatStepper]:StaticInjectorError(平台:核心)[MatStep - > MatStepper]:NullInjectorError:没有MatStepper的提供者!
我认为这是因为mat-step在其构造函数中注入mat-stepper https://github.com/angular/material2/blob/master/src/lib/stepper/stepper.ts#L53
所以我尝试stepper用ngOutletContext 传递上下文
<mat-horizontal-stepper #ContainerStepper="matHorizontalStepper">
<ng-container *ngTemplateOutlet="content" ngOutletContext="{$implicit:{stepper:ContainerStepper}}"></ng-container>
</mat-horizontal-stepper>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
任何的想法 ?
小智 1
你可以试试:
<ng-template #step1Template>
<form>
<mat-form-field>
<input matInput placeholder="Last name, First name" required>
</mat-form-field>
</form>
</ng-template>
<ng-template #step2Template>
<form>
<mat-form-field>
<input matInput placeholder="Address" required>
</mat-form-field>
</form>
</ng-template>
<mat-horizontal-stepper>
<mat-step [stepControl]="firstFormGroup">
<!-- stepper title !-->
<ng-template matStepLabel>Fill out your name</ng-template>
<!-- end stepper title !-->
<!-- stepper content !-->
<ng-container *ngTemplateOutlet="step1Template"></ng-container>
<!-- end stepper content !-->
<!-- stepper footer !-->
<div>
<button mat-button matStepperNext>Next</button>
</div>
<!-- end stepper footer !-->
</mat-step>
<mat-step [stepControl]="secondFormGroup">
<!-- stepper title !-->
<ng-template matStepLabel>Fill out your address</ng-template>
<!-- end stepper title !-->
<!-- stepper content !-->
<ng-container *ngTemplateOutlet="step2Template"></ng-container>
<!-- end stepper content !-->
<!-- stepper footer !-->
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
<!-- end stepper footer !-->
</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-horizontal-stepper>
<mat-vertical-stepper>
<mat-step [stepControl]="firstFormGroup">
<!-- stepper title !-->
<ng-template matStepLabel>Fill out your name</ng-template>
<!-- end stepper title !-->
<!-- stepper content !-->
<ng-container *ngTemplateOutlet="step1Template"></ng-container>
<!-- end stepper content !-->
<!-- stepper footer !-->
<div>
<button mat-button matStepperNext>Next</button>
</div>
<!-- end stepper footer !-->
</mat-step>
<mat-step [stepControl]="secondFormGroup">
<!-- stepper title !-->
<ng-template matStepLabel>Fill out your address</ng-template>
<!-- end stepper title !-->
<!-- stepper content !-->
<ng-container *ngTemplateOutlet="step2Template"></ng-container>
<!-- end stepper content !-->
<!-- stepper footer !-->
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
<!-- end stepper footer !-->
</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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |