Forms 如何从组件中的余烬输入捕获enter事件?

Forms 如何从组件中的余烬输入捕获enter事件?,forms,ember.js,dom-events,event-bubbling,Forms,Ember.js,Dom Events,Event Bubbling,我有一个模态的余烬组件。modals通常包含表单,因此我在组件中使用keyPressed方法捕获各种事件,包括任何enter事件(keycode13)。这将获取所有enter事件,除了源自焦点{{input}字段的事件。看起来余烬是,我可以从输入中捕获所有其他按键事件 我还没有找到一种从我的组件捕获事件的干净方法。我不想扩展任何东西并使用它,或者在特定的控制器上使用操作,或者其他类似的东西,因为它们都感觉像是一些非常简单的东西的肮脏的解决方法,而且似乎是一个明显的用例。我该怎么做 编辑:举个小例

我有一个模态的余烬组件。modals通常包含表单,因此我在组件中使用
keyPressed
方法捕获各种事件,包括任何
enter
事件(keycode13)。这将获取所有enter事件,除了源自焦点
{{input}
字段的事件。看起来余烬是,我可以从输入中捕获所有其他按键事件

我还没有找到一种从我的组件捕获事件的干净方法。我不想扩展任何东西并使用它,或者在特定的控制器上使用操作,或者其他类似的东西,因为它们都感觉像是一些非常简单的东西的肮脏的解决方法,而且似乎是一个明显的用例。我该怎么做

编辑:举个小例子,帮我澄清一下我的意思。我希望在用户点击输入字段中的enter键时,按下
键运行

// Relevant section of component
App.MyModalComponent = Ember.Component.extend({
    // ...
    keyPressed: function (e) {
        if (e.which === 13) {
            console.log('Do something here, like submit the form');
        }
    },
    // ...
});

// Example of template
{{#my-modal}}
    <form>
        {{input value=foo}}
    </form>
{{/my-modal}}
//组件的相关部分
App.MyModalComponent=Ember.Component.extend({
// ...
按键:功能(e){
如果(e.which==13){
log('在这里做点什么,比如提交表单');
}
},
// ...
});
//模板示例
{{{我的情态}
{{input value=foo}}
{{/my modal}}

你说的是
按键
我不认为
按键
是受支持的事件()


如果是为了提交表单,使用浏览器的表单提交功能是有意义的。还可以将组件元素本身设置为表单:

Ember.Component.extend({
  tagName: 'form',
  submit: function(e) {
    e.preventDefault(); // To avoid page reload on event propagation
    // Do things
  }
});

……是的。就这样。谢谢但是由于某种原因,
this.sendAction
keyPress
方法中不起作用。有什么想法吗?当你在模板
{{{my modal inside='outside'}}}
中定义它的时候,你真的把它连接起来了吗?事实上,我刚刚发现问题出在哪里,是其他一些不相关的东西阻止了它的工作。再次感谢!
Ember.Component.extend({
  tagName: 'form',
  submit: function(e) {
    e.preventDefault(); // To avoid page reload on event propagation
    // Do things
  }
});