在没有(ngModel)的情况下参考输入中的* ngFor元素

时间:2017-11-21 23:07:36

标签: angular ngfor

我有一个输入作为搜索栏,整体导航工作。

问题是" navigate(r)"功能在li,我想要我的" keydown.enter = navigate(r)"输入中的函数能够访问" r"结果与" (click) = navigate(r)"相同功能,我该怎么办?注意ngModel已经在输入中使用,所以我不能进行双向绑定(据我所知)。

编辑: "结果"是一个具有很多属性的对象,稍后在其他函数上使用,添加了一个关于它如何工作的图像,我可以使用箭头函数导航但输入isn不运行(单击)函数。

<input [(ngModel)]="search" type="text"
    [value]="emptyVal" (keyup)="searchStuff(search)"
    (keydown.ArrowDown)="goDown()"
    (keydown.ArrowUp)="goUp()"
    (keydown.enter)="navigate(r)">


<div id="results" (clickOutside)="closeSearchResults()" [hidden]="!hasResults">
    <ul (mouseover)="mouseover=true"
        (mouseout)="mouseover=false">
        <li class="item" *ngFor="let r of results$ | async; let i = index" 
        [ngClass]="{'selected': i == searchIndex && !mouseover}"
        (click)="navigate(r)" >

            <span> {{ r.name }}</span>
            <span> {{ r.level }}</span>
        </li>
    </ul>

</div>

这是我的组件的html和this is how it looks.

任何指向如何接近的人都非常感激。

0 个答案:

没有答案