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 proc filesystem (procfs)

    参考:/proc /proc简介 本文着重关注/proc目录,查看其中文件并熟悉它. /proc目录存在于所有Linux系统上,无论什么发行版或体系结构.首先,必须澄清一个误解: 就文件系统这一术语而 ...

  2. HDU-5728-PowMod-求phi(i*n)前缀和+指数循环节

    HDU-5728-PowMod-求phi(i*n)前缀和+指数循环节 [Problem Description] 令\(k=\sum_{i=1}^m \varphi(i\cdot n)\ mod \ ...

  3. EXCEL导入数据到SQL SERVER 2008

    项目中需要导入excel到SQL SERVER数据库 总是报截断, 本质问题是,SQL SERVER导入程序是根据EXCEL的第一行记录 (非标题行)来决定数据长度的 碰到这个问题,可以伪造第一行,然 ...

  4. P2002 消息扩散[SCC缩点]

    题目描述 有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息. 输入格式 第一行两个整数n,m表示n个城市, ...

  5. npm link的使用

    npm link的使用 https://www.jianshu.com/p/aaa7db89a5b2

  6. 阿里 Linux服务器外网无法连接MySQL解决方法

    我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: 2003-  ...

  7. celery 笔记

    参考:https://blog.csdn.net/tichimi3375/article/details/82415412 中文翻译:https://www.celerycn.io/      htt ...

  8. SVN工作区同步

    单击“团队同步”菜单项或“团队同步”视角的“团队”工具栏上的“同步”按钮后,“同步视图”中将显示SVN工作区同步.它提供了从远程检查本地副本的更改类型的概率. 这是“同步视图”中的 “SVN工作空间同 ...

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

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

  10. php类的定义与实例化方法

    php类的定义 类是对某个对象的定义.它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.实际上它本身并不是对象,因为它不存在于内存中.当引用类的代码运行时,类的一个新的实例,即对象,就在内 ...