Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
Componente personalizado en ionic v3

Quería crear un componente simple e incluirlo en una página. Lo creé con ionic g component my-header (ionic-cli v3 beta), arreglé el error de IonicPageModule y luego lo agregué a otra página. Entonces me sale este error:

 Error: Uncaught (in promise): Error: Template parse errors: 'my-header' is not a known element: 1. If 'my-header' is an Angular component, then verify that it is part of this module. 2. If 'my-header' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.

El "MyHeaderComponent" se agregó automáticamente a las declaraciones de @NgModule.

Gracias por tu ayuda.

EDITAR:

El componente se encuentra dentro de mi carpeta components :

componentes/mi-encabezado/mi-encabezado.html

 <div> {{text}} </div>

componentes/mi-cabecera/mi-cabecera.module.ts

 import { NgModule } from '@angular/core'; import { IonicModule } from 'ionic-angular'; import { MyHeaderComponent } from './my-header'; @NgModule({ declarations: [ MyHeaderComponent, ], imports: [ IonicModule, ], exports: [ MyHeaderComponent ], entryComponents:[ MyHeaderComponent ] }) export class MyHeaderComponentModule {}

componentes/mi-encabezado/mi-encabezado.scss

 my-header {}

componentes/mi-encabezado/mi-encabezado.ts

 import { Component } from '@angular/core'; @Component({ selector: 'my-header', templateUrl: 'my-header.html' }) export class MyHeaderComponent { text: string; constructor() { console.log('Hello MyHeaderComponent Component'); this.text = 'Hello World'; } }

aplicación/aplicación.módulo.ts

 /* imports */ import { MyHeaderComponent } from '../components/my-header/my-header'; @NgModule({ declarations: [ MyApp, MyHeaderComponent ], ...

páginas/inicio/inicio.html

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Dado que ionic 3 admite la carga diferida, no necesita importar su componente personalizado en la aplicación. archivo módulo.ts. En su lugar, puede importarlo en el archivo module.ts de una página específica. Por ejemplo: si desea utilizar su componente personalizado en su página de inicio, puede importarlo en su archivo home.module.ts como se indica a continuación:

 import { NgModule } from '@angular/core'; import { IonicPageModule } from 'ionic-angular'; import { HomePage } from './home'; import { MyHeaderComponent }from '../../components/myheader/myheader'; @NgModule({ declarations: [ HomePage, MyHeaderComponent ], imports: [ IonicPageModule.forChild(HomePage), ], exports: [ HomePage, ] }) export class HomePageModule { }

Sin embargo, no olvide eliminar su importación y declaraciones del archivo app.module.ts que se agrega automáticamente cuando crea su componente personalizado.

about 4 years ago · Santiago Trujillo Denunciar

0

No tiene que importar MyHeaderComponent en ngModule.

Debe importar MyHeaderComponentModule en su módulo de página donde quiera usar esto.

 imports: [ MyHeaderComponentModule, ],
about 4 years ago · Santiago Trujillo Denunciar

0

Respuesta tardía para el hilo, pero estoy seguro de que hay más personas que pueden usar esta información explicada en otra perspectiva.

En Ionic, los componentes angulares personalizados se organizan en un módulo separado llamado ComponentsModule . Cuando el primer componente se genera mediante ionic generate component , junto con el componente, ionic genera el ComponentsModule . Cualquier componente posterior se agrega al mismo módulo, con razón.

Aquí hay un módulo de ComponentsModule de muestra

 import { NgModule } from '@angular/core'; import { CustomAngularComponent } from './custom/custom-angular-component'; import { IonicModule } from 'ionic-angular'; @NgModule({ declarations: [CustomAngularComponent], imports: [IonicModule], exports: [CustomAngularComponent], entryComponents:[ ] }) export class ComponentsModule {}

Para usar el Módulo de ComponentsModule en la aplicación, como cualquier otro módulo angular, los Módulos de ComponentsModules deben importarse al AppModule de aplicación. El componente de generación iónica (v 4.12) no agrega este paso, por lo que debe agregarse manualmente.

Extracto de AppModule:

 @NgModule({ declarations: [ //declaration ], imports: [ //other modules ComponentsModule, ], bootstrap: [IonicApp], entryComponents: [ //ionic pages ], providers: [ StatusBar, SplashScreen, {provide: ErrorHandler, useClass: IonicErrorHandler}, //other providers ] }) export class AppModule {}
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda