如何检测哪个 属性 是 selected/clicked

How to detect which property is selected/clicked

我正在尝试检测来自 REST API.

的 ngFor 中哪个 属性 是 selected/clicked

我想从其他人中选出 属性(broker.username)

<div class="list-group">
    <ul *ngFor="let broker of brokers">
        <li class="broker_list"> <a href="#" class="list-group-item list-group-item-action" style="text-align: center;">{{broker.username}}</a></li>
    </ul>

</div>

这是 REST 调用

[
    { id: 1, username: "PersonA"},
    { id: 2, username: "PersonB"}
]

直接在方法中传递broker,像这样

<div class="list-group">
     <ul *ngFor="let broker of brokers">
          <li class="broker_list"> <a href="#" (click)="setBroker(broker)" class="list-group-item list-group-item-action" style="text-align: center;">{{broker.username}}</a></li> 
     </ul>
</div>

有几种方法,其中之一就是做这样的事情。

1) 在 a 标签上添加点击处理程序:

<div class="list-group">
          <ul *ngFor="let broker of brokers">
              <li class="broker_list"> <a href="#" (click)="selected(broker.username)" class="list-group-item list-group-item-action" style="text-align: center;">{{broker.username}}</a></li> 
            </ul>

  </div>

2) 向组件添加方法:

selected(brokerName: string) {
  console.log(brokerName);
}

您必须像这样在 anchor tag 上使用事件处理程序:

<div class="list-group">
    <ul *ngFor="let broker of brokers">
        <li class="broker_list">
            <a (click)="onSelect(broker)" href="#" class="list-group-item list-group-item-action" style="text-align: center;"> {{ broker.username }}</a>
        </li> 
    </ul>

</div>

在您的组件中添加方法:

@Component({ })
class XYZ {
    // ... some code

    public onSelect(broker) {
        // Do what you need with broker?
    }
}

您可以添加(点击)属性 来调用函数,该函数将代理作为参数。然后您可以访问该经纪人的用户名。

<a href="#" (click)="handleBrokerClicked(broker)" class="list-group-item list-group-item-action" style="text-align: center;">{{broker.username}}</a>

a 标签应该能够知道当前代理是什么,因为它在 *ngFor 中。