angular - Hur man sätter ett TypeScript-variabelvärde som CSS-egenskap?


Jag har en bild (inuti ett materialkort) som ändras var 30:e sekund. Jag har bildens höjd (som en TS-variabel) och jag vill sätta den som höjden på den laddade bilden. Jag provade följande metod men jag tror att syntaxen är fel. Vad är rätt metod?

@Component({
selector: 'app-live',
templateUrl: 

 <mat-card [ngStyle]="{'min-height': '{{taille}}'}">
  <img  mat-card-image [src]="profileUrl | async " alt="Streaming de la culture" #img [ngStyle]="{'padding-top':'0px' }" (load)="dosomething(img)">
 </mat-card>

export class LiveComponent implements OnInit {

taille;

dosomething(img) { console.log(img.clientWidth, img.clientHeight);
                   this.taille = img.clientHeight;
                   console.log(this.taille);}

Svar #1

Delen {'min-height': '{{taille}}'} bör faktiskt vara {'min-height': taille}.
Angular-dokumentationen visar nedanstående mycket liknande exempel:

<div [ngStyle]="{'color': colorPreference}">

Från din exempel kod verkar det som att taille initialt är undefined, vilket du kanske vill ta hänsyn till (initiera taille eller använd en ngIf eller annat tillvägagångssätt).

Svar #2

Använder [ngStyle] -

<mat-card [ngStyle]="{'min-height': taille}">

Eller så kan du använda [style.min-height]="taille" istället.

<mat-card [style.min-height] = "taille">

vänligen gå igenom detta för fler insikter.

Relaterade artiklar