Ich habe eine Angular2 App mit Komponenten, von denen ich mehrere auf der gleichen Seite verwenden möchte. Ich hatte ursprünglich drei Komponenten, aber im Sinne des Refactoring möchte ich einige der Funktionen zu einem kombinieren.Angular2 Component Instanzen mit verschiedenen CSS
Die grundlegende HTML-Code der Komponente ist wie folgt:
<div class="component-class componentA-main" >
<div class="result componentA">
<div class="canvasContainer">
... common component functionality here ...
<canvas id="canvas_container"></canvas>
</div>
<div class="componentA-results">
... common component functionality here ...
</div>
</div>
Die beiden anderen Komponenten, die die gleiche Struktur/Funktionalität haben nur mit der CSS anders zu sein. Jede Komponente hat auch ihre eigene CSS-Datei.
Die Komponenten würden in der folgenden Art und Weise verwendet werden:
<div>
<component id="ComponentA"></component>
<component id="ComponentB"></component>
<component id="ComponentC"></component>
</div>
Hier mein Denken ist keine bauteilspezifischen CSS-Klassen, um etwas generisch und drei verschiedene Komponenten CSS-Dateien (componentA.css, componentB müssen umbenennen. css, etc.)
Ich bin jedoch unsicher, wie Sie jede Instanz der Komponente die richtige CSS verwenden. Das einzige, was ich dachte war etwas entlang der Linien von:
<component id="ComponentA" [css-main]='???' [css-result]='???'></component>
Dies ist jedoch ein Chaos @Input verwendet, wird geworden, die ich nicht das Gefühl, sollte für das Styling ohnehin verwendet werden.
Gibt es einen richtigen/besseren Weg, dies zu tun, oder würde ich empfehlen, dass ich zu viel von einer Komponente erwarte und mit 3 separaten bleibe?
Dank
Ich bin mir nicht sicher, was Sie hier erreichen wollen. Standardmäßig können alle Komponenten ein eigenes CSS mit den Selektoren 'styleUrls' oder' style' haben. Kannst du das weiter erklären, damit ich es verstehe und dir eine Antwort gebe? –
Ich habe einen Anwendungsfall hinzugefügt. Ich möchte, dass alle Instanzen der Komponente (Komponenten A, B, C) ein anderes CSS verwenden. Ich möchte jedoch die Komponente selbst wiederverwenden. – user281921