我想更改emberjs 的 onEvent,它是执行关联视图的触发器action
。onEvent 似乎只有 2 个选项: defaultenter
和keypress
. 我想知道我是否也可以有其他选择,例如focusOut
.
小问题
但首先,我什至无法使用非默认选项:
Myapp.TextField = Ember.TextField.extend({
onEvent: 'keypress'
});
文本字段没有响应按键,但继续响应enter
。
实际问题
我们如何让 ember.js 文本字段响应其他onEvent
s 来触发action
视图中的指定。这是我所期待的:
哈佛商学院:
<script type="text/x-handlebars" id="themodel">
{{view Myapp.TextField action="targetAction" valueBinding="myText"}}
</script>
JS视图:
Myapp.TextField = Ember.TextField.extend({
// is this possible?
onEvent: 'focusOut'
});
JS控制器:
Myapp.ThemodelController = Ember.ArrayController.extend({
targetAction: function(){
var usertext = this.get('myText');
// do stuff with the usertext ...
}
});
“实际问题”的解决方法
这是一种解决方法,因为它不修改onEvent
,而是直接让focusOut
触发 targetAction:
JS视图:
Myapp.TextField = Ember.TextField.extend({
focusOut: function(){
this.get('controller').set('myText', this.get('value')).targetAction();
}
});
onEvent
但我真的不喜欢这种繁琐的实现,所以如果有办法使用with ,请告诉我focusOut
。谢谢。