2017-04-18 9 views
1

こんにちは私はn個の行を持つテーブルを持っています。行の高さに基づいて合計高さを計算する必要があります。次のa Typescriptコード:ループ全体の高さを計算します。

private _getRowHeight(_params: any): number { 
    let totalRowHeight: number; 
    let maxHeight: number = 100; 
    let contentLength: number = 50; 
    for (let i in _params.data) { 
     if (i != "time" && _params.data[i] instanceof Array) { 
      let tempHeight: number = 100 * _params.data[i].length; 
      if (tempHeight > maxHeight) maxHeight = tempHeight; 
      for (let x in _params.data[i]){ 
       let tempContentHeight: number = 20 * _params.data[i][x].content.length; 
       if (tempContentHeight > contentLength) contentLength = tempContentHeight; 
      } 
     } 
    } 
    maxHeight += contentLength; 
    return maxHeight; 
} 

基本的にmaxHeightは各行の高さです。 maxHeightまたは各行の高さの合計を計算し、それを変数totalRowHeightに代入するにはどうすればよいですか?助けてください。 (その場合には、単純なarrayOfRows.length * xは十分であろう)、あなたは高さを得るためにElementRefoffsetHeightを使用することができます修正されていない各行の高さを想定し

+0

を仮定すると、高さが固定された_n_行があること、 'rowArray.length * x'を使うだけの問題はどこですか?xはピクセル単位の高さですか?行の高さが変わった場合は、 'ElementRef'と' .offsetHeight'を使ってテーブルの高さを抑える方が良いかもしれません。 – unitario

+0

Unitaro、気にしないとコードに表示されます – blackdaemon

+0

unitario、実際に行の高さは固定されていません。その変更 – blackdaemon

答えて

1

事前にみんなのおかげでは、すなわち:

import { Component, ElementRef } from '@angular/core'; 

@Component({ 
    selector: 'table-example', 
    template: '<table-example> ... </table-example>' 
}) 
export class TableExampleComponent { 

    totalRowHeight: number; 

    constructor(private elRef: ElementRef) {} 

    // make sure the view has been fully rendered with ngAfterViewInit 

    ngAfterViewInit() { 
     let totalRowHeight = this.elRef.nativeElement.offsetHeight; 
    } 
} 
関連する問題