2017-11-21 13 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> 

マイ.TSファイル:divがngForにある場合、各divの幅を追加する方法は?

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

     } 

    } 

私はこのコードを持っています。彼の幅をdivに追加したいと思います。今は1つの幅があり、すべてのdivに追加されています。どのように私はそれを修正することができますどのような提案?

EDIT:

私は正常にこのようなすべてのdivの幅を取得:

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

} 

をしかし、私は今DIVするためにそれらを渡す方法を知りません。なにか提案を?

+0

私はそれを想像することはできません。.. uは画像を添付することができますか? 私が見ることができるのは、 'ngAfterViewInit()'で 'width'を1つだけ取得し、それをすべての要素で使用していますが、幅は自動的に設定する必要があります。 – Verri

+0

すべてのdivに内容があり、幅が違う理由が...だから私はすべてのdivの幅を取得したい。私は内側に固定されたヘッダーがあり、divの幅を得るために継承する幅を設定したいので、ダイブのサイズを設定する必要があります。 – None

+0

'div width 'は何を意味していますか? –

答えて

1

widthを返すメソッドにdivのwidthプロパティをバインドできます。あなた.TSクラスで

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

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

私の投稿を編集しました – None

関連する問題