2017-11-21 1 views
0
<div #elementView [style.width]="width+'px'" class="{{fixed ? 'fixed-div' : ''}}" *ngFor="let event of events"> 
    <header class="sticky"><span>{{event.datetime}}</span><span>{{event.date}}</span></header> 
    <time-flow class="time-flow-child z-table-view" *ngIf="event.event && !event.itemKey" [events]="event.event" [positions]="positions" [selected]="selected"></time-flow> 
    <event-flow class="z-col-24 nopadding z-event-cell" *ngIf="event.items" [events]="event.items" [positions]="positions" [selected]="selected"></event-flow> 
</div> 

Meine .ts-Datei:Wie width jedes div hinzufügen wenn div in ngFor ist?

ngAfterViewInit() { 
     if(this.elementView && this.elementView.nativeElement){ 
      this.width = this.elementView.nativeElement.offsetWidth; 
      console.log(this.width,'aaaa'); 

     } 

    } 

ich diesen Code haben. Ich möchte Breite für immer div seine Breite hinzufügen. Im Moment braucht es eine Breite und fügt alle Divs hinzu. Irgendein Vorschlag wie kann ich das beheben?

EDIT:

ich erfolgreich alle divs bekomme Breite wie folgen aus:

ngAfterViewInit() { 
    this.skillImgs.forEach((skill: ElementRef) => { 
     this.renderer.setElementStyle(skill.nativeElement,'width',skill.nativeElement.offsetWidth); 
    }); 

} 

Aber ich weiß nicht, wie man sie geht nun div. Irgendein Vorschlag?

+0

ich mir nicht vorstellen kann .. kann u Bild anhängen? Und was ich sehen kann ist, dass Sie nur eine 'Breite' in' ngAfterViewInit() 'bekommen und Sie es verwenden, jedes Element außer der Breite sollte automatisch eingestellt werden. – Verri

+0

jeder von divs hat Inhalt innerhalb und das ist, warum sie unterschiedliche Breite haben ... so will ich Breite von jedem div. Ich muss Größe des Tauchens einstellen, weil Innere ich Kopfzeile habe, die Position ist örtlich festgelegt und ich möchte Breite einstellen, um zu erben, Breite von div zu erhalten – None

+0

'div seine Breite' bedeutet was? –

Antwort

1

Sie können die div-Eigenschaft width an eine Methode binden, die die Breite zurückgibt.

<div [style.width]="getElementWidth(event)" *ngFor="let event of events"></div> 

In Ihrem .ts Klasse:

getDivWidth(event:Event) { // event parameter is optional it could be blank as well 
    // Return your appropriate width 
} 
+0

Ich habe meinen Beitrag bearbeitet – None

Verwandte Themen