【发布时间】:2018-01-10 07:07:05
【问题描述】:
在following Angular code中,更新filteredList后点击事件不会触发:
<ul class="dropdown-menu" *ngIf="showOptions">
<li *ngFor="let fund of filteredList" >
<a (click)="selectFund(fund)">{{fund.name}}</a>
</li>
</ul>
filteredList 每次用户在文本输入中键入内容时都会更新。请注意,文本输入由 FormControl 对象支持,filteredList 会在 FormControl.valueChanges 可观察对象发送新数据时更新。
<a> 标记列表确实会相应更新,因此更改检测会按预期进行。唯一的问题是每次刷新后点击不再起作用。
让(click) 侦听器再次工作的唯一方法是通过单击 UI 将showOptions 切换为 false 然后为 true。
我一定遗漏了一些东西,因为这应该可以正常工作。
编辑:您可以在此处查看正在运行的代码:https://stackblitz.com/edit/angular-click-issue。一切都在app.component.ts 和app.component.html 中。如果您选择一个下拉元素,它会起作用。如果您在输入中键入过滤器,然后单击下拉元素,除非下拉列表关闭并重新打开,否则它将不起作用。
【问题讨论】:
-
当您的列表更新时,您是否获得了新的
<a>标签?或者您既没有得到<a>标签也没有得到事件? -
对我来说一切都很好。您可能必须尝试做一个 plunkr 来证明这个问题。
-
我知道...这里也一样,所以问题来了。
-
你能提供一个 plunkr 或类似的吗?代码看起来不错。
标签: angular angular2-changedetection