Je construis un composant 2.0 angulaire et je veux contrôler son style de manière dynamique (en utilisant ng-style
). Après un aperçu rapide de la documentation d'Angular 2, j'ai essayé ceci:
<div class="theme-preview" ng-style="{'font-size': fontSize}">
{{fontSize}}
</div>
Et vu que la taille est effectivement imprimée à l'intérieur de la div mais n'a pas affecté le style. fontSize
est l'une des propriétés du composant, ce qui signifie que le composant l'obtient de son parent comme ceci:
<my-component [font-size]="size" />
À l'intérieur du composant, j'ai:
@Component({
selector: 'XXX',
properties: ['fontSize']
})
Est-ce que j'ai râté quelque chose?
Les gens parviennent toujours à cette réponse, j'ai donc mis à jour le plnkr en beta.1. Deux choses ont changé jusqu'à présent
Exemple
@Component({
selector : 'my-cmp',
template : `
<div class="theme-preview" [ngStyle]="{'font-size': fontSize+'px'}">
{{fontSize}}
</div>`
})
class MyCmp {
@Input('font-size') fontSize;
}
@Component({
selector: 'my-app',
directives: [MyCmp],
template: `
<my-cmp [font-size]="100"></my-cmp>
`
})
Voir ceci plnkr (Mis à jour en beta.1)
Pour un style spécifique, vous pouvez également utiliser ceci:
<div class="theme-preview" [style.font-size]="fontSize+'px'">
Quelque chose comme cela fonctionne actuellement sur la dernière version de angular 4, la syntaxe a été modifiée, veuillez noter le [ngStyle]
.color-box {
width: 10px;
height: 10px;
display: inline-block;
}
<div class="color-box" [ngStyle]="{'background-color': your.model.object.color_code}"></div>