Ionic之路

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的使用。

  1. 安装参考官网-快速上手
// 安装 Angular Material、Angular CDK 和 Angular 动画库
npm install --save @angular/material @angular/cdk @angular/animations
// 手势支持
npm install --save hammerjs
  1. 安装完以后配置以下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';
  1. 在你要显示的页面修改

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. 效果图


    1.png

ionic4开发群:670727319

上一篇下一篇

猜你喜欢

热点阅读