Как отлавливать события клавиатуры в Cycle.js?
Я пытаюсь заполучить, когда пользователь нажимает клавишу Escape с открытым приложением (поэтому не обязательно с фокусированным полем ввода). Однако до сих пор я застрял на перехвате событий клавиатуры вообще. Вот что я сейчас пытаюсь:
drivers.DOM.select(':root')
.events('keypress')
// .filter(ev => ev.keyCode === 27)
.map(ev => true)
Я пытался поймать вечера на body
а также html
как хорошо, но оба безрезультатно...
1 ответ
Решение
Просто создайте однострочный драйвер клавиатуры:
Cycle.run(main, {
DOM: makeDOMDriver(containerElement),
Keypress: () => Rx.Observable.fromEvent(document, 'keypress'); // <=====
});
Проверьте этот пример: https://github.com/cyclejs/examples/blob/master/animated-letters/src/main.js#L110