我使用*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.
我遇到的是输入键按下事件。
答案 0 :(得分:0)
试试这个:
<input
type="search"
[(ngModel)]="searchInput"
(keyup.enter)="selectFirstElement()">
<a *ngFor="let item of items | firstFilter | inputFilter:searchInput; let i = index">
<span
(click)="send(item)"> send {{item.name}} </span>
</a>
添加方法selectFirstElement,它将访问第一个元素或用户按Enter键时突出显示的元素。