处理在余烬视图中TextField子字段的模糊
Handling blur on TextField child in ember view
作为一种探索ember.js的方式,我正在用100%功能兼容的版本重新创建骨干todo示例应用程序。我遇到的第一个症结是在双击编辑创建的待办事项后,我如何处理灰烬上的模糊事件。TextField退出编辑模式。当前代码如下:
<script type="text/x-handlebars" data-template-name="todo-list-template">
<ul>
{{#each App.TodosController.todos}}
{{#view App.TodoView tagName="li" contentBinding="this"}}
{{#if editMode}}
{{view Ember.TextField valueBinding="content.text"}}
{{else}}
{{content.text}}
{{/if}}
{{/view}}
{{/each}}
</ul>
</script>
App.TodoView = Ember.View.extend({
editMode: false,
doubleClick: function(evt){
this.set('editMode', true);
},
blur: function(evt){
this.set('editMode', false);
}
});
我假设来自Ember定义的输入元素的blur事件。TextField会冒泡到我的视图,但我的视图上的模糊处理程序似乎从未被调用。
我看了源码,我认为你必须使用在TextSupport mixin中定义的focusOut
事件https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/controls/text_support.js#L25-28
并且focusOut
事件不会冒泡到parentView
,这就是为什么定义自定义App.TextField
的原因。
车把:
<script type="text/x-handlebars">
<ul>
{{#each App.TodosController.todos}}
{{#view App.TodoView tagName="li" contentBinding="this"}}
{{#if view.editMode}}
{{view App.TextField editModeBinding="view.editMode" valueBinding="view.content.text"}}
{{else}}
{{view.content.text}}
{{/if}}
{{/view}}
{{/each}}
</ul>
</script>
JS:
App.TextField = Ember.TextField.extend({
didInsertElement: function(){
this.$().focus();
},
focusOut: function(evt) {
this.set('editMode', false);
}
});
App.TodoView = Ember.View.extend({
editMode: false,
doubleClick: function(evt) {
this.set('editMode', true);
}
});
参见工作示例http://jsfiddle.net/cvWWe/34/
相关文章:
- Rails的问题,haml + javascript在字段对象的模糊
- 在 ng 重复中进行内联编辑时,输入字段会模糊
- 对焦后,输入字段立即模糊
- 清除输入,模糊文本区域和默认值(如果字段为空)
- 不会触发输入字段的更改和模糊事件
- 可编辑 - 输入字段上的最大长度,模糊时闪烁
- 输入字段上的角度模糊不起作用
- 轨道.jQuery表单提交字段模糊
- AngularJS中模糊事件后的重新聚焦输入字段
- 清除模糊上的输入字段
- Chrome(也许是Safari?)激发了“;模糊”;当浏览器失去焦点时,在输入字段上显示两次
- Elasticsearch多字段模糊搜索未首先返回精确匹配
- 输入字段模糊时,验证字段,如果无效则取消模糊事件
- Rails 表单:当在另一个字段中选择特定选项时,如何模糊字段
- 处理在余烬视图中TextField子字段的模糊
- 如何在模糊触发时限制对字段的验证
- 隐藏Android键盘在javascript输入字段模糊
- 输入字段,聚焦,赋值,模糊保持值,聚焦保持值
- Angularjs中的模态-只有当从一个字段中模糊出来时才更新第二个字段(Plunker附件)
- 输入字段的模糊不工作