首先创建页面

    1. ionic g page biography

    创建组件

    1. ionic g component biography/components/modal

    在biography页面所在的模块中引入刚才创建的modal组件,并声明

    1. import { ModalComponent} from './components/modal/modal.component';
    2. @NgModule({
    3. imports: [
    4. CommonModule,
    5. FormsModule,
    6. IonicModule,
    7. RouterModule.forChild(routes)
    8. ],
    9. declarations: [ModelPage,ModalComponent],
    10. entryComponents: [ModalComponent]
    11. })

    在biography页面中引入刚才创建的modal组件,并且引入ModalController 弹出模态对话框

    1. import { Component, OnInit } from '@angular/core';
    2. import { ModalController } from '@ionic/angular';
    3. import { ModalComponent} from './components/modal/modal.component';
    4. @Component({
    5. selector: 'app-modal',
    6. templateUrl: './modal.page.html',
    7. styleUrls: ['./modal.page.scss'],
    8. })
    9. export class BiographyPage implements OnInit {
    10. constructor(public modalController: ModalController) {}
    11. ngOnInit() {
    12. }
    13. async presentModal() {
    14. const modal = await this.modalController.create({
    15. component: ModalComponent,
    16. componentProps: { username: 'zhangsan' } //传值
    17. });
    18. await modal.present();
    19. const { data } = await modal.onDidDismiss();//接收返回的数值
    20. console.log(data) //打印数值
    21. //...页面刷新等方法
    22. }
    23. }

    弹出的组件页面通过NavParams接受biography页面的传值

    1. import { Component, OnInit } from '@angular/core';
    2. import { NavParams } from '@ionic/angular';
    3. @Component({
    4. selector: 'app-login',
    5. templateUrl: './login.component.html',
    6. styleUrls: ['./login.component.scss'],
    7. })
    8. export class ModalComponent implements OnInit {
    9. constructor(public navParams: NavParams) {
    10. console.log(this.navParams);
    11. this.username = this.navParams.data.username
    12. console.log(this.navParams.data.username);
    13. }
    14. ngOnInit() {
    15. }
    16. closeModel(){
    17. this.navParams.data.modal.dismiss({
    18. 'result': '返回点数据'
    19. });
    20. }
    21. }

    完整代码

    biography.page.ts

    1. import { Component, OnInit } from '@angular/core';
    2. import { ModalController } from '@ionic/angular';
    3. import { ModalComponent} from './components/modal/modal.component';
    4. import { NavParams } from '@ionic/angular';
    5. @Component({
    6. selector: 'app-biography',
    7. templateUrl: './biography.page.html',
    8. styleUrls: ['./biography.page.scss'],
    9. })
    10. export class BiographyPage implements OnInit {
    11. constructor(public modalController: ModalController) {}
    12. ngOnInit() {
    13. }
    14. async presentModal() {
    15. const modal = await this.modalController.create({
    16. component: ModalComponent,
    17. componentProps: { username: 'zhangsan' } //传值
    18. });
    19. await modal.present();
    20. const { data } = await modal.onDidDismiss();
    21. console.log(data)
    22. }
    23. }

    biography.page.html

    1. <ion-header>
    2. <ion-toolbar>
    3. <ion-buttons slot="start">
    4. <ion-back-button defaultHref="/tabs/tab1"></ion-back-button>
    5. </ion-buttons>
    6. <ion-title>biography</ion-title>
    7. </ion-toolbar>
    8. </ion-header>
    9. <ion-content padding>
    10. <ion-button (click)="presentModal()">
    11. 点击
    12. </ion-button>
    13. </ion-content>

    modal.component.html

    1. <ion-header translucent="true" class="navbar-header">
    2. <ion-toolbar >
    3. <ion-buttons slot="start">
    4. <ion-button (click)="closeModel()">
    5. <ion-icon slot="icon-only" name="arrow-back"></ion-icon>
    6. </ion-button>
    7. </ion-buttons>
    8. <ion-title>点击后弹出的</ion-title>
    9. </ion-toolbar>
    10. </ion-header>
    11. <ion-content padding>
    12. <ion-input>{{username}}</ion-input>
    13. </ion-content>

    modal.component.ts

    1. import { Component, OnInit,Input } from '@angular/core';
    2. import { NavParams } from '@ionic/angular';
    3. @Component({
    4. selector: 'app-modal',
    5. templateUrl: './modal.component.html',
    6. styleUrls: ['./modal.component.scss'],
    7. })
    8. export class ModalComponent implements OnInit {
    9. username = ''
    10. constructor(public navParams: NavParams) {
    11. console.log(this.navParams);
    12. this.username = this.navParams.data.username
    13. console.log(this.navParams.data.username);
    14. }
    15. ngOnInit() {}
    16. closeModel(){
    17. this.navParams.data.modal.dismiss({
    18. 'result': '消失的时候返回的内容'
    19. });
    20. }
    21. }