首页 > 解决方案 > Angular [selected] 属性仅在 init 上运行

问题描述

我使用带有一些选项的选择,这些选项将由 ngFor 循环设置。每个选项都有[selected]属性,并且应该在选择时将索引打印到控制台。问题是该功能将在页面刷新/加载时执行,而不是在单击下拉列表中的值时执行。

这是一个最小的例子:https ://stackblitz.com/edit/angular-multi-select-rppf99

我目前正在使用 Anuglar 5+

标签: angularselectoptionsselected

解决方案


selected当您想在下拉列表中选择初始选项时,将使用该选项。您想要的是收听下拉列表中的更改。如果您想将索引传递给函数,但保持 id 不变,value那么您可以使用 vanilla JS 并$event获取选定的索引:)

<select (change)="AddTarget($event.target.selectedIndex)">
  <option *ngFor="let target of availableTargets; let i = index" [value]="target.id" >
    {{target.name}}
  </option>
</select>

演示:StackBlitz


推荐阅读