J'ai lu Documentation de NgStyle pour Angular2 . Un peu déroutant pour moi. Avez-vous une idée de la façon d'utiliser NgStyle avec une condition comme (si ... autre) pour définir l'image d'arrière-plan d'un élément?
L'utilisation d'un opérateur ternaire à l'intérieur de la liaison ngStyle
fonctionnera comme une condition if/else.
<div [ngStyle]="{'background-image': 'url(' + value ? image : otherImage + ')'}"></div>
On peut aussi utiliser ce genre de condition:
<div [ngStyle]="myBooleanVar && {'color': 'red'}"></div>
Cela nécessite un peu moins de concaténation de chaînes ...
Les réponses ci-dessus ne fonctionnaient pas pour moi alors j'ai décidé d'améliorer cela.
Vous devriez travailler avec url('')
et non avec value.
<li *ngFor="let item of items">
<div
class="img-wrapper"
[ngStyle]="{'background-image': !item.featured ? 'url(\'images/img1.png\')' : 'url(\'images/img2.png\')'}">
</div>
</li>
Vous pouvez utiliser ceci comme suit:
<div [style.background-image] = "value ? 'url('+imgLink+')' : 'url('+defaultLink+')'"></div>