🎨 Angular Content Projection – Flexible UIs mit ng-content
, @ContentChild
& Co.
Wenn du wiederverwendbare Komponenten in Angular entwickelst, brauchst du Content Projection.
Sie macht deine Komponenten flexibel, komponierbar und clean.
✨ 1. Das Prinzip ng-content
<!-- button.component.html -->
<button class="fancy-button">
<ng-content></ng-content>
</button>
<!-- usage -->
<app-button>Jetzt starten</app-button>
➡ Der Button wird wiederverwendbar, ohne festes Label
🎯 2. Mehrere Slots mit select
<!-- card.component.html -->
<div class="card">
<div class="header"><ng-content select="[card-header]"></ng-content></div>
<div class="body"><ng-content></ng-content></div>
</div>
<app-card>
<div card-header>🧠 Header-Content</div>
<p>Body-Inhalt</p>
</app-card>
➡ Super für strukturierte Layouts
🧠 3. Zugriff via @ContentChild
@ContentChild('titleRef') title!: ElementRef;
ngAfterContentInit() {
console.log(this.title.nativeElement.textContent);
}
<app-section>
<h2 #titleRef>Section-Überschrift</h2>
</app-section>
➡ Zugriff auf DOM, Komponenten oder TemplateRefs
💡 Best Practices
- Nutze Content Projection für Layout-Komponenten
- Vermeide Logik in projected Content
- Kombiniere mit Inputs für Flexibilität
✅ Fazit
Mit ng-content
und @ContentChild
machst du Angular-Komponenten wiederverwendbar & elegant.
Perfekt für UI Libraries, Design Systeme und modulare Apps.
📍 Nächster Beitrag:
📊 Angular Charting – Highcharts vs. ApexCharts vs. ngx-charts
Hast du Fragen oder ein Projekt im Kopf?
Ich freue mich auf deine Nachricht. Lass uns gemeinsam deine Vision verwirklichen!
Jetzt Kontakt aufnehmen