2015-08-22 61 views
45

進入密鑰被釋放時,下面的工作很好。 keyupkeyup.enter之外還有什麼其他選擇可供選擇?Angular2中的(keyup)有哪些選項?

<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/> 
+0

也許這可能會給你一個提示https://github.com/angular/angular/issues/523,但它已經很老了。 –

回答

43

這些是目前在測試中記錄的選項:ctrl,shift,enter和escape。這些鍵綁定的一些有效的例子:

keydown.control.shift.enter 
keydown.control.esc 

雖然沒有官方的文檔存在,你可以跟蹤這個here,但他們應該很快就會出爐。

+3

哇,這個答案是在Angular處於第20個alpha時給出的,它今天仍然有效。 –

+0

相關文檔https://angular.io/guide/user-input#key-event-filtering-with-keyenter –

2

您可以添加keyup事件這樣

template: ` 
    <input (keyup)="onKey($event)"> 
    <p>{{values}}</p> 
` 

在組件中,一些像下面的代碼

export class KeyUpComponent_v1 { 
    values = ''; 

    onKey(event:any) { // without type info 
    this.values += event.target.value + ' | '; 
    } 
} 
+0

這不適用於數字。如果我在輸入字段中鍵入數字,那麼keyup事件不會被觸發。我們可以爲此做些什麼? – monica

1

我正在尋找一種方法來綁定多個關鍵事件 - 特別是Shift + Enter - 但在線找不到任何好的資源。但是在記錄了keydown綁定之後

<textarea (keydown)=onKeydownEvent($event)></textarea> 

我發現鍵盤事件提供了我需要檢測Shift + Enter的所有信息。原來,$event返回一個相當詳細的KeyboardEvent

onKeydownEvent(event: KeyboardEvent): void { 
    if (event.keyCode === 13 && event.shiftKey) { 
     // On 'Shift+Enter' do this... 
    } 
} 

還有CtrlKey,AltKey和MetaKey(即Mac上的Command鍵)的標誌。

不需要KeyEventsPlugin,JQuery或純JS綁定。