Podcast Title

Author Name

0:00
0:00
Album Art

Ionic 2/Ionic 3 - How to delete pages and remove app module references

By 10xdev team June 01, 2017

In the previous tutorial ,we covered how to create and add pages in Ionic 2 / Ionic 3 .In this tutorial we are going to see how to delete pages .

This tutorial works for both Ionic 2 and Ionic 3 .

Deleting pages which support lazy loading (Ionic 3 only)


In Ionic 3 you can lazy load a page by providing it with its own page module which has its own declartaions array .for exampe here is a module for a family-list page:

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { FamilyListPage } from './family-list';

@NgModule({
declarations: [
    FamilyListPage,
],
imports: [
    IonicPageModule.forChild(FamilyListPage),
],
exports: [
    FamilyListPage
]
})
export class FamilyListPageModule {}

So to delete this page you can just delete the folder which contains the page files including the module then of course you need to get rid of any references to this page from other pages .

Using your terminal ,navigate inside src/pages directory and run

cd src/pages 
rm -r family-list 

Deleting pages without lazy loading


If the page doesn't include lazy loading (Ionic 2) you need to follow these steps to delete pages .

First navigate inside src/pages then delete all page files (HTML ,CSS and TypeScript source files) .

Next head over to app module at src/app/app.module.ts then remove the page import statement then remove page from module declarations array and entryComponents array .

For example to remove a HomePage

/* .. */
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home'; // 1 ) remove this 
/* .. */


@NgModule({
declarations: [
    MyApp,
    HomePage // 2 ) remove this 
],
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
],
bootstrap: [IonicApp],
entryComponents: [
    MyApp,
    HomePage // 3 ) remove this 
],
providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},

]
})
export class AppModule {}

The module should look like

/* .. */
import { MyApp } from './app.component';
/* .. */


@NgModule({
declarations: [
    MyApp
],
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
],
bootstrap: [IonicApp],
entryComponents: [
    MyApp    ],
providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},

]
})
export class AppModule {}

Conclusion


We looked at how to delete pages and remove all references to them in main module in both cases of Ionic 2 and Ionic 3 .

Join the 10xdev Community

Subscribe and get 8+ free PDFs that contain detailed roadmaps with recommended learning periods for each programming language or field, along with links to free resources such as books, YouTube tutorials, and courses with certificates.

Recommended For You

Up Next