我正在尝试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事件处理程序。
答案 0 :(得分:3)
这真的很奇怪,我会继续调查它,但你可以使用输入助手并观察值,另外你可以扩展文本字段并获得密钥,如果你关心哪个他们迫切关键。
http://emberjs.jsbin.com/EBoLEZe/1/edit
{{input value=name}}
postKey: function(){
console.log(this.get('name'));
}.observes('name')
答案 1 :(得分:1)
看起来有一个错误(或至少非常奇怪的行为)会影响使用键盘事件操作的能力。通常,按下修改键时,非键盘事件的操作处理程序(如默认的“单击”事件)不起作用。在您的代码中,如果您将allowedKeys="any"
添加到操作助手中,则会调用您的处理程序。