2017-10-04 34 views
0

我们目前在Angular 4应用程序中使用Kendo UI自动完成功能。 目前我们允许用户输入文本,并且在输入的第一个字符上立即触发自动完成查找。Kendo UI Autocomplete for Angular 4 - 数据搜索触发输入按键

我们要求在用户按下回车键前禁用搜索。

有谁知道这是可能的吗?

在咨询了关于http://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/的文档之后,我知道我可以高举打开的动作并防止默认,或者直到X字符停止查找,但直到按下按键。

我猜测on模糊事件可能是可用的。

回答

0

您将需要访问实际的底层HTML输入元素并附加一个keydown处理程序,然后执行自定义逻辑以防止内置过滤,直到按下Enter键,通过toggle()方法以编程方式打开Popup,并呼吁搜索处理程序中输入:

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(); 
    } 
} 

EXAMPLE