У меня есть текстовое поле, из которого я хочу поймать событие shift-enter
, которое нажимается внутри него.
enter
, а также shift-enter
вызывают метод save
класса controller
. Но внутри метода save
у меня, кажется, нет param
, дающего мне нажатую клавишу (число).
Когда я реализую метод keyUp: (e) ->
внутри своего view(controller)
, он либо не вызывается, когда метод save
реализован внутри controller
, либо, когда метод save
не реализован, я получаю сообщение об ошибке nothing handled the action save
.
На самом деле я только хочу знать, была ли нажатая клавиша (клавиши), которая вызвала действие save
, либо enter
, либо shift-enter
.
Как лучше всего это сделать? Спасибо!
Обновить
Мой код теперь выглядит так:
ContactIndex = Ember.View.extend
listenKey: ((event) ->
if(event.which == 13)
@get('controller').send('save', event.shiftKey)
).on('keyDown') # When I use `keyUp` instead, the isShift boolean value is not being transmitted.
Contact = Ember.ObjectController.extend
save: (isShift) ->
console.log('Shift Key Pressed: ' + isShift)
false
Каждый раз, когда я нажимаю enter
или shift-enter
, save action
вызывается дважды.