2017-04-05 16 views
1

私は私のために、特定のポップアップ場合にaraised一般的な角度ダーツ疑問を持っている: は、どのように私はループで角度ダーツの#特別な演算子を使用していますか?私の場合はforループの動的要素名のアドレス指定方法は?

、私はクリックで詳細をポップアップを開きたい人のためのユーザーのリストを持っています。私は矩形を自動的に計算するpopupSourceディレクティブを使用します#subjectParticipantそこからポップアップがトリガーされ、そのソースの隣に表示されます。

問題は、ループの最後の矩形を取るように見えるということです。

<li *ngFor="let activeUser of subject.users" > 
    <div class="profileImg" 
     (click)="popupUserInfoId = activeUser.userId" 
     popupSource #subjectParticipant="popupSource"> 
    <img src="/auth/user/photo/s/{{activeUser.userId}}"> 
    </div> 

    <info-popup *ngIf="popupUserInfoId == activeUser.userId" 
       [userId]="popupUserInfoId" 
       [source]="subjectParticipant" 
       [offsetX]="28" 
       [offsetY]="10" 
       [visible]="popupUserInfoId == activeUser.userId" > 
    </info-popup> 
</li> 

同じ位置にあるすべてのユーザーのポップアップが開いた私の理解では、ダーツの角度がの下に変数を上書きすること#subjectParticipantであるn回ループの最後の1つだけを保持します。この変数に動的なもの(ユーザインデックスなど)を追加する方法はありますか?

答えて

2

範囲は<li>以内であり、それぞれ<li>の場合は、異なるsubjectParticipant値を維持する必要があります。 あなたの問題は他のどこかから来たものと思われます。 popupSourceは、一意の値が含まれている場合、これは*ngFor内部

<div>{{subjectParticipant.uniqueid}}</div> 

を追加し、それが各activeUserに異なる値をレンダリングするかどうかをチェックすることにより、デバッグが容易であるべきです。

+0

私は順番にポップアップトリガー矩形の情報を保持するPopupSourceDirectiveを使用して材料-ポップアップを使用しています。 私はあなたが示唆したものをしようとすると、私はこのエラーを取得: 例外:NoSuchMethodError:クラスのPopupSourceDirectiveは「ノーインスタンスゲッター「一意ID」を持っています。 –

+0

これは予想通りです。 '#subjectParticipant'が' activeUser'単位であるのか、 '* ngFor'レンダリングされたHTML全体であるのかを正確に調べることができるように、実際に一意のIDを提供する' popupSource'ではなく、カスタム指示文で試してみることができます。私はそれが前者だと確信しています。 私はあなたが解決しようとしている実際の問題を追跡する方法を知らない。 –

+0

あなたが正しかった、私はあなたがそれをフィードバックしてくれてありがとう:)動作させることができました聞いて喜ん –

関連する問題