如何在for循环中寻址动态元素名称?

时间:2017-04-05 12:39:14

标签: dart angular-dart

我有一个普通的角镖问题,在特定的弹出式案例中为我提出了一个问题: 如何在循环中使用角度飞镖的#特殊运算符?

在我的情况下,我有一个用户列表,我想打开一个包含点击详细信息的弹出窗口。我使用了一个popupSource指令,该指令自动计算触发弹出窗口的Rectangle #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>

我的理解是dart angular会在 #subjectParticipant 下覆盖变量n次,并且只保留循环中的最后一个变量。有没有办法将动态(例如用户索引)附加到此变量?

1 个答案:

答案 0 :(得分:2)

范围应在<li>范围内,并且对于每个<li>,应保持不同的subjectParticipant值。 我怀疑你的问题来自其他地方。 如果popupSource包含唯一值,则应通过添加

来轻松调试
<div>{{subjectParticipant.uniqueid}}</div>

*ngFor内,并检查它是否为每个activeUser呈现不同的值。