Я предпочитаю использовать ember-keyboard addon для этой работы. Это очень хорошее объяснение функций, которые он предлагает, по ссылке ниже: https://github.com/briarsweetbriar/ember-keyboard
. Вам нужно добавить миксин в свой компонент,
import Ember from 'ember';
import { EKMixin } from 'ember-keyboard';
export default Ember.Component.extend(EKMixin, {
. . . .
});
, а затем установить keyboardActivated
свойство true. Приведенный ниже код будет вызван после метода init.
activateKeyboard: Ember.on('init', function() {
this.set('keyboardActivated', true);
})
Вы должны импортировать требуемое событие
import { keyPress } from 'ember-keyboard';
onKeyPressHandler: Ember.on(keyPress('Escape'), function() {
// console.log('escape button pressed');
}),
В вашем случае, если вы хотите, чтобы событие вызывалось при каждом нажатии клавиши, тогдапросто не предоставляйте цепочку ключей для keyUp или keyDown. Это может быть удобным способом инициировать события для большого диапазона клавиш, например, для любого буквенно-цифрового нажатия клавиш. Например:
import { getCode } from 'ember-keyboard';
triggerOnAlphaNumeric: Ember.on(keyUp(), function(event) {
if (/^Key\w(?!.)/.test(getCode(event))) {
...
}
})