【发布时间】:2018-05-04 08:07:04
【问题描述】:
我使用*ngFor 循环遍历一组对象,并应用几个管道来过滤结果列表。
其中一个管道使用来自搜索字段的用户输入。
当用户单击其中一个 ngFor 元素时,该对象将被发送到一个函数并添加到“选择”数组中,以供以后使用。
<input type="search" [(ngModel)]="searchInput">
<a *ngFor="let item of items | firstFilter | inputFilter:searchInput; let i = index">
<span (click)="send(item)"> send {{item.name}} </span>
</a>
我正在尝试复制搜索字段(如 google)的行为,其中第一个结果突出显示,如果用户在键入时按 Enter,它将触发与单击结果 send(item) 相同的操作。
使用 ngClass 检查输入是否为空且 i === 0 时,突出显示很容易。
我遇到的问题是 enter 按键事件。
- 如何从 ngFor 循环内部侦听输入字段中的事件,并且仅针对第一个结果 (i===0)?
- 有没有办法记录对象列表(或至少是第一个 一),在管道应用到项目数组之后?
- 您建议如何处理?
【问题讨论】:
标签: javascript angular ngfor key-events pipes-filters