Avatar ·

¿Cómo usar un componente de otro módulo en Angular?

¡Hola a todos! Soy nuevo en Angular y TypeScript, y tengo un problema con el uso de un componente de otro módulo. Tengo dos módulos: `AppModule` (raíz) y `SharedModule`. En `SharedModule` creé el componente `MyButtonComponent`, que quiero usar en la plantilla del componente `AppComponent`, que está en `AppModule`. Aquí está la estructura de mi proyecto: **shared.module.ts:** ```typescript import { NgModule } from '@angular/core'; import { MyButtonComponent } from './my-button.component'; @NgModule({ declarations: [MyButtonComponent], exports: [MyButtonComponent] }) export class SharedModule { } ``` **app.module.ts:** ```typescript import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { SharedModule } from './shared/shared.module'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule, SharedModule], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ``` **app.component.ts:** ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-root', template: `

¡Hola, Angular!

` }) export class AppComponent { } ``` **my-button.component.ts:** ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-my-button', template: `` }) export class MyButtonComponent { } ``` **Problema:** Cuando ejecuto la aplicación, obtengo el error: `'app-my-button' is not a known element`. ¿Qué estoy haciendo mal? **Solución:** El problema es que aunque `SharedModule` exporta `MyButtonComponent`, necesitas asegurarte de que `AppModule` importe `SharedModule`. En tu código, ya tienes `imports: [BrowserModule, SharedModule]`, lo cual es correcto. Sin embargo, verifica que la ruta de importación en `app.module.ts` sea correcta y que el selector del componente coincida exactamente. Si el error persiste, asegúrate de que no haya conflictos de nombres o que el componente esté correctamente declarado en `SharedModule`.