如何在 for 循环中处理动态元素名称?

How to address a dynamic element name in a for loop?

我有一个一般的 angular dart 问题,是在一个特定的弹出窗口案例中为我提出的: 如何在循环中使用 angular dart 的 # 特殊运算符?

在我的例子中,我有一个用户列表,我想为这些用户打开一个弹出窗口,其中包含点击时的详细信息。我使用 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>

我的理解是dart angular 覆盖了#subjectParticipant下的变量n次,只保留最后一个循环。有没有办法向这个变量附加一些动态的东西(例如用户索引)?

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

应该很容易调试
<div>{{subjectParticipant.uniqueid}}</div>

*ngFor 中并检查它是否为每个 activeUser.

呈现不同的值