ember.jsを探索する方法として、100%機能互換バージョンのバックボーンtodoサンプルアプリケーションを再作成しています。エディットモードを終了するにはEmber.TextFieldでblurイベントを処理するにはどうすればいいですか?次のように現在のコードは次のとおりです。Emberビューの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.TextFieldだろうバブルアップしますが、私の見解でぼかしハンドラによって定義された入力要素からblurイベントが呼び出されるように見えることはありませんと仮定していました。カスタムApp.TextField
が定義されている理由を
まあで働い例を参照してください。これまでのところemberが好きですが、新しいビューオブジェクトにそれぞれをラップすることなく、子ノードのDOMイベントを処理できるようにしたいと感じることがあります。私はそれが少しでもスタイルに反していると思いますし、おそらくコードのにおいさえします。 – user1117841
イベントを処理する場合は、一般に、それらのイベントをカプセル化するために新しいビューを作成する必要があると感じています。 私たちは単純なターゲット/アクションのケースのためのソリューションに取り組んでいますが、フォーカス/ブラーのケースは十分に複雑で、おそらくカスタムビューを作成すべきです。 –