2016-07-29 10 views
1

Ich habe eine Komponente, die Vorlage von HTML-Datei, die Vorlage wie dieseBinding Wert <Style> Tag Angular 2 Vorlage

<div class="abc"></div> 
 
<style> 
 
    .abc { 
 
     background-color: {{myColor}} 
 
    } 
 
</style>

Gibt es trotzdem, um dynamische Bindung den Wert der Hintergrund- mit Farbe ? Eigentlich kann ich das tun, indem ich css zu Inline-HTML wie diese <div class="abc" [style.background-color]="myColor"></div> verschiebe, aber aus irgendeinem Grund kann ich das nicht tun.

Hat jemand irgendwelche Ideen? Vielen Dank!

+1

Dies wird von Angular2 nicht unterstützt. Sie können so etwas mit CSS-Variablen in Browsern tun, die es unterstützen. Ich schätze, Angular2 wird eventuell das Shimming von CSS-Variablen für Browser hinzufügen, die es nativ nicht unterstützen. –

Antwort

0

können Sie ng2 styler verwenden oder eigene Dekorateur schreiben, die CSS als Text auf der Grundlage des NG2 styler Code importiert interpoliert

in vier Dekorateur Funktion könnten Sie verwenden:

metaInformation = window['Reflect'].getOwnMetadata('annotations', target)

Und dann:

for (let metadata of metainformation){ 
    if (metadata instanceof ComponentMetadata){ 
    //interpolate somecsstext and add it to to metadata.styles 
    //as if it was added from the styles property 
    //of the component decorator metadata 
    metadata.styles = [...metadata.styles, somecsstext 
     .replace(/{{([a-z1-9]+)}}/ig, function (match, prop) { 
      return yourVaribles[prop]; 
     })]; 


    } 
} 
+0

Vergessen Sie zu erwähnen, dass die Absicht, ein Style-Tag in Ihrer Komponente anzubringen, merkwürdig erscheint und Teile der Web-Komponenten-Philosophie verletzt. Wahrscheinlich möchten Sie dies in Style - Metadaten tun, damit Sie CSS - Kapselung etc – Andreas

Verwandte Themen