2017-03-10 11 views
0

私はそうのようなngForループしている:私は、HF(呼び出し<div *ngFor="let group of catt" id="juliet" [ngClass]="hf()">)はそうのように見えるたびに機能:Angular2 * ngForループ(初回のみ1が取得する)

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

    } 

をしかし、 forループはデータに対して4回実行されますが、最初のループの高さのみが与えられ、その後は各ループに対して同じ高さが与えられます。私が要素を調べると、私は異なる高さの4つのループを見る。 juliet[0]のように、各ループの識別子も表示されません。 forループの各ループの高さはどうすればわかりますか? DOM複数回(document.getElementById('juliet')は、要素の最初のインスタンスでしょうが)、ページ上には、代わりに、以下に示す#julietのようなテンプレート変数を使用することを繰り返すことになるよう

答えて

2

idを使用しないでください。次いで

<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回答ありがとうございます。 –

関連する問題