Ember.js映射动作keyUp事件

时间:2013-10-26 16:30:34

标签: javascript ember.js

我正在尝试Ember.js但是在使用动作时我被困住了。

如果我使用以下内容:

<button {{action "test"}}>Test</button>

创建一个控制器:

App.NewController = Ember.ArrayController.extend({
    actions: {
        test: function() {
            console.log("test");
        },
    }
});

然后一切正常,我可以在日志中看到test。但是,当我尝试以下内容时:

<input type="text" {{action "test2" on="keyUp"}} />

以类似方式定义test2操作:

App.NewController = Ember.ArrayController.extend({
    actions: {
        test: function() {
            console.log("test");
        },
        test2: function() {
            console.log("test2");
        }
    }
});

然后它似乎不起作用。我的测试按钮正在运行,但是在阅读the documentation之后,没有像我预期的那样触发keyup事件处理程序。

2 个答案:

答案 0 :(得分:3)

这真的很奇怪,我会继续调查它,但你可以使用输入助手并观察值,另外你可以扩展文本字段并获得密钥,如果你关心哪个他们迫切关键。

http://emberjs.jsbin.com/EBoLEZe/1/edit

{{input value=name}}

  postKey: function(){
    console.log(this.get('name'));  
  }.observes('name')

另请参阅:KeyPress event not working as expected in Ember

答案 1 :(得分:1)

看起来有一个错误(或至少非常奇怪的行为)会影响使用键盘事件操作的能力。通常,按下修改键时,非键盘事件的操作处理程序(如默认的“单击”事件)不起作用。在您的代码中,如果您将allowedKeys="any"添加到操作助手中,则会调用您的处理程序。

小提琴:http://emberjs.jsbin.com/oyEpImI/2/edit?html,js,output