2017-04-27 28 views
1

我在我的应用中实现了Angular2材质自动完成。我正在寻找一种方法来正确管理keydown.enter功能。Angular2 md-autocomplete:如何管理onkeydown?

由于下方点击功能的工作原理我所期望的方式,我很自然地尝试:

<md-input-container> 
<input type="text" placeholder={{appName}} mdInput [formControl]="term" [mdAutocomplete]="auto"> 
</md-input-container> 
<md-autocomplete #auto="mdAutocomplete" md-focus> 
<md-option *ngFor="let item of items" [value]=item.title (click)="loadData(item)" (keydown.enter)="loadData(item)">    
    <span>{{item.title}}</span> 
</md-option> 
</md-autocomplete> 

但功能不会被触发。 如果我移动keydown.enter功能md-input-container,就像这样:

<md-input-container > 
<input type="text" placeholder={{appName}} mdInput [formControl]="term" [mdAutocomplete]="auto" (keydown.enter)="loadData(item)"> 
</md-input-container> 
<md-autocomplete #auto="mdAutocomplete" md-focus> 
<md-option *ngFor="let item of items" [value]=item.title (click)="loadData(item)">    
    <span>{{item.title}}</span> 
</md-option> 
</md-autocomplete> 

它的工作原理,但我没有访问了我的项目元素......

我肯定有一个简单的绕过这个方法,但我一直无法弄清楚。我怎样才能让我的物品对象在md-input-container

这里是一个Plunker.

+1

Downvoter,care to comment? – Stanislasdrg

回答

1

你可以通过调用(onSelect)="loadData(item)",而不是“点击”和“的keydown”功能得到MD-选项选择的项目。

编辑:正如下面的Joshua指出的那样,您现在应该致电onSelectionChange事件。

+0

现在被称为onSelectionChange事件。 –