本文概述
- 模态控制器
- 解散方法
模态控制器 它负责在Ionic应用程序中创建模态。它使用create()方法创建模式。你可以通过在create方法中设置模式选项来自定义控制器。
解散方法 创建模态后, 可以通过在模态控制器上调用dismiss()方法来消除它。在关闭模态之后, 可以调用onDidDismiss函数来执行其他操作。
让我们一步一步地了解模式控制器在Ionic应用程序中的工作方式。
步骤1:创建一个新项目。你可以从此处了解如何在Ionic 4中创建项目。
步骤2:为模态控制器创建一个新页面。为此, 请运行以下命令。
$ ionic g page modal
步骤3:创建模式页面后, 打开以下文件, 并插入给定的代码。你可以根据需要修改代码。
Modal.page.html
在这里, 我们将调用dismiss方法, 并添加显示在模式UI中的内容。
<
ion-header>
<
ion-toolbar>
<
ion-title>
Modal Content<
/ion-title>
<
ion-icon name='close-circle' (click)='dismiss()' style='float: right;
'>
<
/ion-icon>
<
/ion-toolbar>
<
/ion-header>
<
ion-content>
<
ion-list>
<
ion-item>
<
ion-avatar slot="start">
<
img src="http://www.srcmini.com/assets/avatar.png"/>
<
/ion-avatar>
<
ion-label>
<
h2>
Peter<
/h2>
<
p>
Hi! srcmini is a best Tutorial WebSite.<
/p>
<
/ion-label>
<
/ion-item>
<
ion-item>
<
ion-avatar slot="start">
<
img src="http://www.srcmini.com/assets/avatar.png"/>
<
/ion-avatar>
<
ion-label>
<
h2>
Frodo<
/h2>
<
p>
Hi! This is a Great Ionic 4 Tutorial.<
/p>
<
/ion-label>
<
/ion-item>
<
ion-item>
<
ion-avatar slot="start">
<
img src="http://www.srcmini.com/assets/avatar.png"/>
<
/ion-avatar>
<
ion-label>
<
h2>
Sam<
/h2>
<
p>
This is an example of Modal Controller.<
/p>
<
/ion-label>
<
/ion-item>
<
/ion-list>
<
/ion-content>
模态页面
在此文件中, 我们必须创建一个dismiss方法来关闭模式UI。
import { Component, OnInit } from '@angular/core';
import { ModalController} from '@ionic/angular';
@Component({selector: 'app-modal', templateUrl: './modal.page.html', styleUrls: ['./modal.page.scss'], })export class ModalPage implements OnInit {constructor(public modalCtrl: ModalController) {}ngOnInit() {}dismiss() {this.modalCtrl.dismiss();
}}
Modal.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { ModalPage } from './modal.page';
const routes: Routes = [{path: '', component: ModalPage}];
@NgModule({imports: [CommonModule, FormsModule, IonicModule, RouterModule.forChild(routes)], declarations: [ModalPage]})export class ModalPageModule {}
步骤4:接下来, 配置app.module.ts文件。它负责在应用程序中输入模式页面。在这里, 你需要导入模式页面, 然后将其添加到@NgModule中。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { ModalPageModule } from './modal/modal.module';
@NgModule({declarations: [AppComponent], entryComponents: [], imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, ModalPageModule], providers: [StatusBar, SplashScreen, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }], bootstrap: [AppComponent]})export class AppModule {}
步骤5:打开home.page.ts文件并添加以下代码。在此文件中, showModal()函数用于创建模式控制器。在这里, 你还可以使用componentProps选项传递数据。
import { Component } from '@angular/core';
import { ModalController} from '@ionic/angular';
import { ModalPage } from '../modal/modal.page';
@Component({selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], })export class HomePage {constructor(public modalCtrl: ModalController) {}async showModal() {const modal = await this.modalCtrl.create({component: ModalPage});
return await modal.present();
}}
步骤6:打开home.page.html文件, 并添加以下代码。
<
ion-header translucent>
<
ion-toolbar color="danger">
<
ion-title>
Ionic Modal<
/ion-title>
<
/ion-toolbar>
<
/ion-header>
<
ion-content class="ion-padding" color="light">
<
h1>
Modal Controller<
/h1>
<
ion-button color="primary" (click)="showModal()">
Show<
/ion-button>
<
/ion-content>
步骤7:现在, 运行应用程序, 你将获得以下屏幕。
文章图片
【Ionic模态框】在以上屏幕中, 单击“显示”按钮, 浏览器中将显示以下屏幕。在这里, 你可以将模式页面的内容视为临时UI。单击关闭图标可以将其关闭。
文章图片
推荐阅读
- Ionic导航和路由
- Linux下BusyBox根文件系统制作
- 嵌入式Linux下完成LCD屏文字显示(帧缓冲框架)
- 数据分析之特征工程——Filter过滤法
- redis优化系列Redis主从原理主从常用配置
- Redis 进阶 -- 搭建主从复制及哨兵模式集群
- 数据结构之堆(优先级队列)
- [OpenCV实战]19 使用OpenCV实现基于特征的图像对齐
- 你真的会用K折交叉吗( 对于K折交叉的思考| 防止K折交叉踩坑)