我有一个textarea,我想要捕获一个shift-enter
事件,它被压入其中。
enter
以及shift-enter
都会调用save
的{{1}}方法。但是在controller
方法中,我似乎没有save
给我按下的键(数字)。
当我在param
中实施keyUp: (e) ->
方法时,在view(controller)
内部实施save
方法时,或{{1} }}方法未实现,我收到错误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
都会被调用两次。
答案 0 :(得分:2)
最好将一个布尔值传递给视图,无论它是否是一个移位键事件从视图到控制器。
App.IndexController=Ember.Controller.extend({
actions: {
save: function(isShift){
console.log('Shift Key Pressed: ' + isShift);
return false;
}
}
});
App.IndexView=Ember.View.extend({
listenKey: function(event){
if(event.which===13){
this.get('controller').send('save',event.shiftKey);
}
}.on('keyUp')
});