2017-05-02 3 views
0

Je souhaite ajouter un style conditionnel à l'élément hôte. par exempleAngular 2 Ajout d'un style dynamique à l'hôte

:host, :host:focus { 
    cursor: pointer; 
} 

:host .disabled { 
    opacity: 0.5; 
    cursor: default; 
} 

j'ai un paramètre d'entrée @input() activé: boolean

P.S. Envelopper mon composant comme <div [class.disabled]="!enabled"> </div> ne suffit pas. Je souhaite désactiver/activer l'élément hôte.

+0

'disabled' ne peut fonctionner que sur un élément spécifique comme' select', 'input',' button' –

+0

Hmm, les personnes handicapées est mon style CSS personnalisé. Je peux le renommer, mais ça devrait marcher. En ce moment, je ne sais pas comment ajouter une classe css personnalisée sur l'hôte conditionnellement –

+0

Pourriez-vous partager plus de code HTML s'il vous plaît –

Répondre

0

Vous pouvez utiliser avec Renderer, élément d'

@Component({ 
    .... 
}) 
class YouComponent implements OnChanges { 
    constructor(private el: ElementRef, private renderer: Renderer) {} 

    ngOnChanges(changes: SimpleChanges) { 
    if (changes.hasOwnProperty('enabled')) { 
     this.renderer.setElementClass(this.el.nativeElement, 'disabled', {isAdd: !!changes['input'].currentValue}); 
    } 
    } 
} 

Edit: la réponse simplifiée