【ionic】-模态对话框及modal页面传值

1、是什么?

模态对话框也叫模式对话框,是指用户想要对对话框以外的应用程序进行操作时,必须先对该对话框进行相应,windows应用程序中,对话框分为模态对话框和非模态对话框,二者的区别在于程序过程中,对话框打开时,能否允许用户进行其他对象的操作,简单理解为,主窗体是否能够进行操作;而模态对话框恰恰是无法进行操作的那一方;

应用场景:登录注册等具有先后次序的场景;

2、怎么用?

  • 新建一个model页面,并在model页面下创建一个组件
ionic g component model/components/login
  • 在model页面所在模块(module.ts)中引入刚创建的login组件并进行声明
//引入
import { LoginComponent} from './components/login/login.component';

//声明
@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    IonicModule,
    RouterModule.forChild(routes)
  ],
  declarations: [ ModalPage , LoginComponent],
  entryComponents: [LoginComponent]  //必须有
})
  • 在model页面(page.ts)中,引入创建的login组件,并且引入ModalController弹出模态对话框
//引入
import { LoginComponent} from './components/login/login.component';

//构造函数
constructor(public modalController: ModalController) {}

//方法;使用 关键字 async 来表示,在函数内部使用 await 来表示异步
async showModel() {
    const modal = await this.modalController.create({
      showBackdrop: true,
      component: LoginComponent,
      componentProps: { aid: 123, name: '二狗' }  //传值
    });
    return await modal.present();
  }

3、Model页面给弹出的组件传值,弹出组件关闭时传值

  • 在model中page.ts中给弹出组件页面传值
async showModel(){
    const modal = await this.modalController.create({
      component: LoginComponent,
      componentProps: { aid: 123,name:'亓亓' }   //传值
    });

//监听销毁事件
     const {data} =await modal.onDidDismiss();
     console.log(data);
  • 弹出组件Login页面引入NavParams接收modal页面传值
// 接收modal页面传过来的值
import { NavParams } from '@ionic/angular';

constructor(public navParams: NavParams) {
      console.log(this.navParams);
      console.log(this.navParams.data.aid);
  }

doClose() {
    // 关闭模态对话框
    this.navParams.data.modal.dismiss();
  }
  • 效果展示

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值