1、Modal 模态对话框简介

官方文档:https://ionicframework.com/docs/api/modal

Modal模态对话框主要用于登录注册页面,我们可以把它理解为从页面底部弹出的另一个页 面。

2、Modal 模态对话框使用

比如我们想在 modal 页面中弹出另一个页面

1、新建一个 model 页面以及在 model 页面下面新建一个组件。

ng generate  page model
ng generate component model/components/login

2、在 model 页面所在的模块中引入刚才创建的 login 组件,并声明

 import { LoginComponent} from './components/login/login.component';
       
NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule, RouterModule.forChild(routes)
],
declarations: [ModelPage,LoginComponent], entryComponents: [LoginComponent]
})

3、在modal页面中引入刚才创建的login组件,并且引入ModalController 弹出模态对话框, 代码如下:

import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { LoginComponent } from '../components/login/login.component'; @Component({
selector: 'app-modal', templateUrl: './modal.page.html', styleUrls: ['./modal.page.scss'],
})
export class ModalPage implements OnInit {
constructor(public modalController: ModalController) {} ngOnInit() {
}
async presentModal() {
const modal = await this.modalController.create({ showBackdrop:true,
component: LoginComponent, componentProps: { value: 123 }
});
return await modal.present(); }
}

3、Modal 页面给弹出的组件传值

1、modal 页面在 componentProps 中给弹出的组件页面传值

const modal = await this.modalController.create({ showBackdrop:true,
component: LoginComponent,
componentProps: { value: 123 } });
return await modal.present();

2、弹出的组件页面通过 NavParams 接受 modal 页面的传值

import { Component, OnInit,Input } from '@angular/core'; import { NavParams } from '@ionic/angular'; @Component({
selector: 'app-login',
templateUrl: './login.component.html', styleUrls: ['./login.component.scss'],
})
export class LoginComponent implements OnInit {
@Input() aid: any;
constructor(public navParams: NavParams) {
// componentProps can also be accessed at construction time using NavParamsns
console.log(this.navParams); }
ngOnInit() {
} closeModel(){
this.navParams.data.modal.dismiss({ 'result': '消失的时候返回的内容'
}); }
}

4、弹出的组件关闭的时候给 modal 页面传 值

1、modal 监听关闭事件

async showModel(){
const modal = await this.modalController.create({
component: LoginComponent,
componentProps: { aid: '123' } });
await modal.present();
//监听销毁的事件
const { data } = await modal.onDidDismiss(); console.log(data);
}

2、Login 组件关闭的时候传入数据

closeModel(){ this.navParams.data.modal.dismiss({
'result': '消失的时候返回的内容' });
}

Login 组件完整代码:

import { Component, OnInit,Input } from '@angular/core'; import { NavParams } from '@ionic/angular'; @Component({
selector: 'app-login',
templateUrl: './login.component.html', styleUrls: ['./login.component.scss'],
})
export class LoginComponent implements OnInit {
@Input() aid: any;
constructor(public navParams: NavParams) {
// componentProps can also be accessed at construction time using NavParamsns
console.log(this.navParams); }
ngOnInit() {
} closeModel(){
this.navParams.data.modal.dismiss({ 'result': '消失的时候返回的内容'
}); }
}

Ionic4.x Modal模态对话框以及 Modal 传值的更多相关文章

  1. QT笔记之模态对话框及非模态对话框

    模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其 ...

  2. Cocos2d-js3.3 模态对话框的实现

    首先,先了解一下什么是模态对话框,百度百科的给出了下面一个定义: 模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话 ...

  3. QT模态对话框及非模态对话框

    QT模态对话框及非模态对话框 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对 ...

  4. 《手把手教你》系列技巧篇(二十八)-java+ selenium自动化测试-处理模态对话框弹窗(详解教程)

    1.简介 在前边的文章中窗口句柄切换宏哥介绍了switchTo方法,这篇继续介绍switchTo中关于处理alert弹窗的问题.很多时候,我们进入一个网站,就会弹窗一个alert框,有些我们直接关闭, ...

  5. 小程序 模态对话框自定义组件(modal)

    1. 概述 1.1 说明 小程序中使用wx.showModal(Object object)打开一个模态对话框,但是目前小程序所提供的modal中的内容显示比较死板,不能够完全满足工作中所遇到的功能信 ...

  6. Bootstrap 模态框(Modal)插件数据传值

    原文:http://blog.csdn.net/baalhuo/article/details/51178154 模态框具体代码如下: <!-- 模态框(Modal) --> <di ...

  7. Bootstrap 模态框(Modal)带参数传值实例

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 为了实现父窗体与其的交互,通常需要向其传值,实现 ...

  8. 整理:手机端弹出提示框,使用的bootstrap中的模态框(modal,弹出层),比kendo弹出效果好

    效果图: 我的代码示例: <!--提示模态框--> <div class="modal fade" id="myModal" tabindex ...

  9. bootstrap中的模态框(modal,弹出层)

    默认的modal示例: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset= ...

随机推荐

  1. Linux命令——mesg

    参考:图解Linux命令之--mesg命令 Linux mesg命令 前言 在看一个脚本~/.profile 的时候发现了mesg命令以及一个奇怪用法 ~/.profile # ~/.profile: ...

  2. VMware15 桥接模式无法上网

    1. 检查宿主机网络连接是否成功 2. 检查宿主机网络适配器列表是否有多余的 loop 等回环类型的适配器(楼主在安装npcap程序后系统出现回环类型的适配器,即把包发回本地,所有的虚拟机的桥接模式都 ...

  3. MySQL数据库语法-单表查询练习

    MySQL数据库语法-单表查询练习 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是对聚合函数和分组的练习. 一.数据表和测试数据准备 /* @author :yinz ...

  4. Ansible批量自动化管理工具

    一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansible ...

  5. kubernetes master节点部署(三)

    一.部署kubernetes api服务 1.1.准备软件包 [root@linux-node1 ~]# cd /usr/local/src/kubernetes [root@linux-node1 ...

  6. Nginx练习练习玩玩

    Date:2019-11-9 读前思考: 对于NGINX,一般会问什么? 面试官会从哪方面入手? 面试官到底想考察什么? 你做好准备了吗? 如果对于初学者,往往可以通过面试题来提升对某一个技术的了解和 ...

  7. 基于Java+Selenium的WebUI自动化测试框架(九)-----基础页面类(BasePage)

    上篇我们写了java读取xml文件的类,实现了可以从xml文件读取元素的方式.那么,接下来我们需要考虑一个问题.我们拿了这些元素之后怎么去操作呢? 先来看看我们手工测试的时候是怎么进行的. 双击浏览器 ...

  8. 【小顶堆的插入构造/遍历】PatL2-012. 关于堆的判断

    L2-012. 关于堆的判断 时间限制   将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x a ...

  9. flask 框架 转载:https://cloud.tencent.com/developer/article/1465968

    特点总结: 类名称---->数据库表名 类属性---->数据库字段 类的对象----->数据库表中的一行一行数据 3.ORM操作注意(理解) 1/因为SQLALChemy去app身上 ...

  10. 在virtualenv中使用不同的Python版本

    来源:百度SEO公司   我有一个目前使用python 2.5.4运行的Debian系统. 我正确安装了virtualenv,一切正常. 我是否可以将virtualenv与其他版本的Python一起使 ...