¿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: `
`
})
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`.