Negli esempi forniti di direttive Attribute (ad esempio una direttiva per aggiungere aspetto/comportamento), abbiamo un'impostazione abbastanza semplice di uno stile sull'elemento host. Ad es.Stili angolari2 in una direttiva
import {Directive, ElementRef } from 'angular2/core';
@Directive({
selector: '[myHighlight]'
})
export class HighlightDirective {
constructor(element) {
element.nativeElement.style.backgroundColor = 'yellow';
}
static get parameters(){
return [[ElementRef]];
}
Piuttosto che impostare lo stile, posso invece usare uno stile? per esempio.
@Directive({
selector: '[myHighlight]',
styles: [':host { background-color: yellow; }']
})
Questo non sembra funzionare per me?
Sto facendo qualcosa di leggermente più complesso che ha portato a una buona quantità di codice monolingue, l'impostazione di molti stili, utilizzando AnimationBuilder ecc ecc. Mi sembra come sarebbe molto meglio separarlo in classi e animazioni in un CSS.
ViewEncapsulation = emulato/predefinito se ciò è importante?
Anche se è stato un anno, per l'amor di posteri, ho aggiunto la risposta qui sotto. Implica sia l'uso di un componente come direttiva, sia la modifica del ViewEncapsulation di default. Vedi la mia risposta qui sotto. - Cheers –