2017-03-10 63 views
0

我有一個ngFor循環,像這樣:Angular2 * ngFor循環越來越高(只得到第一個)

hf() { 
    this.heighty = document.getElementById('juliet').offsetHeight; 
    console.log("juliet function height = " + this.heighty); 

    } 

但是:<div *ngFor="let group of catt" id="juliet" [ngClass]="hf()">這裏我所說的HF(),每個看起來像這樣時間功能for循環經歷了4次數據處理,但僅給出了第一個循環的高度,然後爲每個循環提供了相同的高度。當我檢查元素時,我會看到具有不同高度的4個環。我也沒有看到每個循環的標識符,如juliet[0]。我如何獲得for循環的每個循環的高度?

回答

2

請勿使用id,因爲它將在頁面上多次重複該DOM(儘管document.getElementById('juliet')將爲元素的第一個實例),而不是像下面顯示的使用模板變量#juliet

<div *ngFor="let group of catt" #juliet [ngClass]="hf(juliet)"> 

然後通過在hf方法傳遞juliet計算每個DOM的高度。

hf(element) { 
    this.heighty = element.offsetHeight; 
    console.log("juliet function height = " + this.heighty); 
} 
+1

非常感謝CLEAR答案,它的效果非常好! –