ionic4开发——集成Angular Material之步骤条
2018-10-17 本文已影响4人
漂泊猫
步骤条是个很常用的组件,最开始是我自己写,插件没写成倒写了一坨x,后来在群里有位大佬看见了我的需求,他开始写了一个ionic2+的插件(HsuanXyz/ionic-stepper)对我帮助很大,非常感谢;后来出现了NG-ZORRO的steps,我试过之后发现每一步嵌入form表单提交很不好处理;再后来又发现Angular Material的进步器,每一步都是单独的按钮,对表单提交互不影响;将来NG-ZORRO-MOBILE可能更适合,但是目前(2018-10-17)我试过之后点都点不动。
下面主要说说在ionic4集成Angular Material的使用。
- 安装参考官网-快速上手
// 安装 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 href="https://fonts.googleapis.com/icon?family=Material+Icons" 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开发群:670727319