步驟條是個很常用的組件,最開始是我自己寫,插件沒寫成倒寫了一坨x,后來在群里有位大佬看見了我的需求,他開始寫了一個ionic2+的插件(HsuanXyz/ionic-stepper)對我?guī)椭艽螅浅8兄x;后來出現(xiàn)了NG-ZORRO的steps,我試過之后發(fā)現(xiàn)每一步嵌入form表單提交很不好處理;再后來又發(fā)現(xiàn)Angular Material的進步器,每一步都是單獨的按鈕,對表單提交互不影響;將來NG-ZORRO-MOBILE可能更適合,但是目前(2018-10-17)我試過之后點都點不動。
下面主要說說在ionic4集成Angular Material的使用。
- 安裝參考官網(wǎng)-快速上手
// 安裝 Angular Material、Angular CDK 和 Angular 動畫庫
npm install --save @angular/material @angular/cdk @angular/animations
// 手勢支持
npm install --save hammerjs
- 安裝完以后配置以下4個文件
// app.module.ts
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@NgModule({
...
imports: [BrowserAnimationsModule],
...
})
// angular.json
"styles": [
"node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
...
}
// index.html
<link rel="stylesheet">
// main.ts
import 'hammerjs';
- 在你要顯示的頁面修改
contact.page.html
<ion-header>
<ion-toolbar color="primary">
<ion-title>
Contact
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
<!-- <p>自定義圖標:<ion-icon name="mystar"></ion-icon></p> -->
<mat-horizontal-stepper #stepper>
<mat-step [stepControl]="myStepper1">
<ng-template matStepLabel>第一步</ng-template>
<div>
<p>111111111111</p>
</div>
<div>
<button mat-flat-button matStepperNext>下一步</button>
</div>
</mat-step>
<mat-step [stepControl]="myStepper2">
<ng-template matStepLabel>第二步</ng-template>
<div>
<p>22222222</p>
</div>
<div>
<button mat-flat-button matStepperNext>下一步</button>
</div>
</mat-step>
<mat-step [stepControl]="myStepper3">
<ng-template matStepLabel>第三步</ng-template>
<div>
<p>3333333333333</p>
</div>
<div>
<button mat-flat-button matStepperNext>下一步</button>
</div>
</mat-step>
</mat-horizontal-stepper>
</ion-content>
contact.module.ts
import { IonicModule } from '@ionic/angular';
import { Routes, RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { MatButtonModule, MatStepperModule } from '@angular/material';
import { ContactPage } from './contact.page';
const routes: Routes = [
{
path: '',
component: ContactPage
}
];
@NgModule({
imports: [
IonicModule,
CommonModule,
FormsModule,
RouterModule.forChild(routes),
MatButtonModule,
MatStepperModule
],
declarations: [ContactPage]
})
export class ContactPageModule {}
-
效果圖
1.png
ionic4開發(fā)群:670727319
