Create A New Ionic Project
ionic start blank CustomModal blank --type=angular
Now create a new modal page as per your need
ionic g page modal_page_name
Open index.html and add this style tag in your header
<style>
ion-modal {
margin-top: 50%;
margin-bottom: 20%;
margin-right: 10px;
margin-left: 10px;
border-radius: 10px;
--background-color: rgba(255, 255, 255, 0.7);
}
</style>
Open home.module.ts and Import Your Modal Page
<style>
ion-modal {
margin-top: 50%;
margin-bottom: 20%;
margin-right: 10px;
margin-left: 10px;
border-radius: 10px;
--background-color: rgba(255, 255, 255, 0.7);
}
</style>
Open home.module.ts and Import Your Modal Page
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { HomePage } from './home.page';
//here is my modal page component
import { DetailsPageModule } from '../details/details.module';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild([
{
path: '',
component: HomePage
}
]),
//add here your modal page module
DetailsPageModule
],
declarations: [HomePage]
})
export class HomePageModule { }
Open home.page.html
<ion-header>
<ion-toolbar>
<ion-title>
Ionic Blank
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-button (click)="presentModal()" expand="full">Open</ion-button>
</ion-content>
home.page.ts
import { Component, HostListener } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { DetailsPage } from '../details/details.page';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
disabled: boolean = false;
constructor(public modalController: ModalController) {
}
async presentModal() {
const modal = await this.modalController.create({
component: DetailsPage,
cssClass: 'pricebreakup',
backdropDismiss: true
});
return await modal.present();
}
}
Open your modal page module file here my modal page name is Details and add entryComponents
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { DetailsPage } from './details.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule
],
declarations: [DetailsPage],
//add your page name in here
entryComponents: [DetailsPage]
})
export class DetailsPageModule { }
Here i am showing simple list in my modal page you can add what you want in your modal page
Modal Page HTML
<ion-content>
<ion-list class="list-bg">
<ion-item color="secondary" *ngFor="let item of items">
<ion-label>{{item.item}}</ion-label>
</ion-item>
</ion-list>
<ion-button (click)="dismiss()" expand="full" color="light">Close</ion-button>
</ion-content>
Modal Page css
.list-bg{
background-color: lightblue;
border-color: lightcoral;
border-radius: 0rem;
}
Modal Page Typescript file
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-details',
templateUrl: './details.page.html',
styleUrls: ['./details.page.scss'],
})
export class DetailsPage implements OnInit {
items = [
{
"item": "Item 1"
},
{
"item": "Item 2"
},
{
"item": "Item 3"
},
{
"item": "Item 4"
},
{
"item": "Item 5"
},
{
"item": "Item 6"
},
{
"item": "Item 7"
}
]
constructor(public modalCtrl: ModalController) {
}
ngOnInit() {
}
dismiss() {
this.modalCtrl.dismiss({
'dismissed': true
});
}
ionViewWillLeave() {
console.log("ionViewWillLeave");
}
}


Comments
Post a Comment