web-dev-qa-db-fra.com

Combine [NgStyle] avec Condition (si..else)

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?

38
Mr.Byte

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>
53

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 ...

55
Zohar

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>
14
Johnatan Maciel

Vous pouvez utiliser ceci comme suit:

<div [style.background-image] = "value ? 'url('+imgLink+')' : 'url('+defaultLink+')'"></div>
3
somratexel