If you creating an Ionic application and trying to use ion-*tags inside custom Ionic components then you will get some errors like-
Template parse errors:
'ion-card' is not a known element:
1. If 'ion-card' is an Angular component, then verify that it is part of this module.
2. If 'ion-card' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
I was working on an Ionic project and started getting this error when I created a custom component. I searched over Google for one day and wasted time but nothing worked. I found one line of solution somewhere in Ionic Forum site and thought to write this for everyone out there struggling for the same issue.
Steps to resolve the issue-
1. Generate the component
Generate a component using command ionic generate component <component-name>. You will see a component is generated in components folder along with a module file components.module.ts
2. Import ComponentsModule
You have to import the components.module.ts file in app.module.ts to make your component available for use.
import { ComponentsModule } from '../components/components.module';
imports: [
ComponentsModule
],
3. Update ComponentsModule
Now the last and most important part is:- Import IonicPageModule in ComponentsModule file. This one line would solve the Template parse errors in Ionic components. The components.module.ts file should look like this-
import { NgModule } from '@angular/core';
import { IonicPageModule } from "ionic-angular";
import { HeaderComponent } from './header/header';
@NgModule({
declarations: [HeaderComponent],
imports: [IonicPageModule.forChild(HeaderComponent)],
exports: [HeaderComponent]
})
export class ComponentsModule { }
Check the screenshot for reference-
Feel free to share your comments on this 🙂
