灰烬手柄保存动作并提取按下的键

时间:2014-07-31 15:00:22

标签: ember.js ember-cli

我有一个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-enterContactIndex = 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都会被调用两次。

1 个答案:

答案 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')
});

检查此jsbin http://emberjs.jsbin.com/fazibu/1/edit