2017-10-04 2 views
0

Wir verwenden Kendo UI Autocomplete derzeit in einer Angular 4-Anwendung. Gegenwärtig erlauben wir einem Benutzer, Text einzugeben, und die automatische Vervollständigungssuche wird sofort beim ersten eingegebenen Zeichen ausgelöst.Kendo UI Autocomplete für Angular 4 -Datensuche ausgelöst bei Eingabetaste

Wir müssen die Suche deaktivieren, bis der Benutzer die Eingabetaste gedrückt hat.

Weiß jemand, ob das möglich ist?

Nach Rücksprache mit der Dokumentation auf http://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/ Ich weiß, ich kann die offene Aktion Highjack und verhindern Standard oder alternativ deaktivieren Suche bis X Zeichen aber nicht, bis die Taste drücken.

Ich vermute, dass das Ereignis auf Blur möglicherweise nutzbar sein könnte.

Antwort

0

Sie müssen auf das tatsächlich zugrunde liegende HTML-Eingabeelement zugreifen und einen Keydown-Handler anhängen, dann benutzerdefinierte Logik ausführen, um die integrierte Filterung zu verhindern, bis die Eingabetaste gedrückt wird. Öffnen Sie das Popup programmgesteuert über die toggle() -Methode. und rufen Sie die Such Handler auf 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(); 
    } 
} 

EXAMPLE