La proyección de contenido en Angular se logra mediante el uso de la etiqueta <ng-content>
. Esta es una característica valiosa en Angular, que permite inyectar contenido HTML en un componente desde el exterior, lo que es particularmente útil para crear componentes de interfaz de usuario reutilizables.
Essencialmente, <ng-content>
actúa como un marcador de posición para el contenido externo. Durante el tiempo de ejecución, Angular reemplaza <ng-content>
con el contenido real que se le pasa desde el exterior.
Supongamos que tienes un componente de Alerta que acepta un mensaje personalizado. Podrías usar la etiqueta <ng-content>
para proyectar el contenido del mensaje en el componente. Aquí hay un ejemplo de cómo se vería:
<alert-component>
¡Este es un mensaje personalizado de alerta!
</alert-component>
Dentro del archivo de tu componente Alerta, tendrías un <ng-content>
donde Angular insertará el mensaje personalizado:
<div class="alert">
<ng-content></ng-content>
</div>
Cuando el componente Alerta se renderiza en el navegador, Angular reemplaza <ng-content>
con el mensaje personalizado, dando como resultado algo como esto:
<div class="alert">
¡Este es un mensaje personalizado de alerta!
</div>
Una buena práctica al usar <ng-content>
es tener en cuenta que la etiqueta puede usarse varias veces dentro de un solo componente, permitiendo la proyección de múltiples fragmentos de contenido. Sin embargo, es importante entender que los estilos del componente anfitrión (el componente que contiene la etiqueta <ng-content>
) no se aplicarán al contenido proyectado, a menos que esos estilos sean de ámbito global.
En conclusión, <ng-content>
es una poderosa herramienta de Angular para crear componentes reutilizables y personalizables, facilitando la proyección de contenido que se necesita para una gama amplia de aplicaciones modernas.