Angular 检测元素是否在角度2中有焦点

Angular 检测元素是否在角度2中有焦点,angular,ecmascript-6,Angular,Ecmascript 6,我使用(焦点)=“showSearchList=true”在输入上显示文本输入的自动完成下拉列表,并使用(模糊)=“showSearchList=false”再次隐藏它 我的问题是,如果单击下拉列表中的一个结果,我想触发另一个方法,但通过单击下拉列表中的元素,我触发了输入的模糊方法,因此不会单击下拉列表结果。什么是最好的方式使这项工作?我使用的是ES6,而不是Typescript,我在谷歌上很难找到任何东西 这是我到目前为止拥有的模板: <div id="searchContainer"&

我使用(焦点)=“showSearchList=true”在输入上显示文本输入的自动完成下拉列表,并使用(模糊)=“showSearchList=false”再次隐藏它

我的问题是,如果单击下拉列表中的一个结果,我想触发另一个方法,但通过单击下拉列表中的元素,我触发了输入的模糊方法,因此不会单击下拉列表结果。什么是最好的方式使这项工作?我使用的是ES6,而不是Typescript,我在谷歌上很难找到任何东西

这是我到目前为止拥有的模板:

<div id="searchContainer">
    <input [(ngModel)]="search"
           (ngModelChange)="filterSearch()"
           (focus)="showSearchList=true;"
           (blur)="showSearchList=false"
           type="text"
           id="searchJobs"
           placeholder=" Search"/>
    <div *ngIf="showSearchList"
         id="searchDropdown">
        <p *ngFor="let result of filteredSearchResults; let index = index;"
            (click)="addResultToResults(index); search='';">
            {{result}}
        </p>
    </div>
</div>


{{result}}

我想不用在模糊时将showSearchList设置为false,我可以调用一个方法来检查哪个元素具有焦点,并根据这一点隐藏下拉列表,或者运行addResultToResults方法,然后隐藏下拉列表,但我不知道如何在angular2中检查哪个元素具有焦点


希望能得到一些反馈

我建议使用
mouseleave
事件控制
searchlist
并从
input
元素移动
blur
事件。如果您想在
搜索列表
中单击项目后显示,可以与
单击
事件组合使用


Plunker

谢谢,但要想让它起作用,用户必须先将鼠标放在下拉列表上。不?因此,如果他们决定不点击任何结果,下拉列表将一直保持在那里,直到他们将鼠标移到下拉列表上并从中退出。啊,没关系-我将鼠标移动到容器div,效果非常好-谢谢!)@用户3640967哈哈,不客气。我只是在评论,但我想没必要。哦,对不起,我以为我已经接受了。我现在就做。再次感谢!