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. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-E. Let Them Slide-思维+数据结构

    Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-E. Let Them Slide-思维+数据结构 [Problem ...

  2. RollingRegression(滚动回归分析)之Python实现

    # -*- coding: utf-8 -*-"""Created on Sat Aug 18 11:08:38 2018 @author: acadsoc"& ...

  3. m_atoi

    自己实现atoi函数 函数定义:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结 ...

  4. 《TheOne团队》团队作业三:团队项目原型设计与开发

    项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10761596.h ...

  5. SecureCRT中解决乱码的问题

    SecureCRT中文乱码的问题,解决方法如下: 打开Option菜单,点击Session Options-     在Appearance外观这里,选择编码--UTF-8     一定要记得先保存! ...

  6. 【杂谈】操作系统如何有效地掌控CPU

    操作系统的本质 操作系统本质上也是一个进程,它与其他用户进程共享CPU.与普通进程不同的是,它具有硬件的所有访问权限.而用户进程默认对硬件是没有任何访问权限的,它只能通过系统调用,委托操作系统来完成这 ...

  7. ElementUI2.0组件库el-table表格组件如何自定义表头?

    效果图: npm run dev 编译项目之后,报错,要使用jsx语法需要先安装编译插件 1.安装下列安装包 npm install babel-plugin-syntax-jsx --save-de ...

  8. Selenium常用API的使用java语言之16-下拉框选择

    有时我们会碰到下拉框,WebDriver提供了Select类来处理下接框. 如百度搜索设置的下拉框,如下图: 搜索下拉框实现代码如下: <select id="nr" nam ...

  9. 有关求第n位xxx 的算法的问题

    最近,博客园上看到有关求 斐波那契数列的第n位是什么的问题.什么是 斐波那契数列? 我自己也忘记了,后来百度了下.http://baike.baidu.com/view/816.htm?fr=alad ...

  10. 44、[源码]-Spring容器创建-BeanFactory预准备

    44.[源码]-Spring容器创建-BeanFactory预准备 @Override public void refresh() throws BeansException, IllegalStat ...