kendo ui在Enter按键按下触发的Angular 4 -DATA搜索的自动完成



我们当前正在使用Angular 4应用程序中的Kendo UI自动完成。目前,我们允许用户输入文本,并且自动完成查找立即在输入的第一个字符上触发。

我们需要禁用搜索,直到用户按Enter键为止。

有人知道这是否可能吗?

在http://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/咨询了文档后直到按键按。

我猜想上的模糊事件可能是可用的。

您需要访问实际的基础HTML输入元素并附加键盘处理程序,然后执行自定义逻辑以防止内置过滤,直到按下Enter键通过toggle()方法,并在Enter上调用搜索处理程序:

ngAfterViewInit(){
  this.ac.searchbar.input.nativeElement.addEventListener('keydown', (e) => {
    if(e.which === 13){
      this.enterPressed = true;
      this.ac.toggle()
      this.handleFilter(e.target.value)
    } else {
      this.enterPressed = false;
    }
  });
}
handleFilter(value) {
  if(this.enterPressed){
    this.data = this.source.filter((s) => s.toLowerCase().indexOf(value.toLowerCase()) !== -1); 
  } 
}
onOpen(e){
  if(!this.enterPressed){
    e.preventDefault();
  }
}

示例

最新更新