动作助手,类似于evt.target

时间:2013-04-13 17:04:59

标签: ember.js

在ivoked控制器方法中有一些对DOM元素的引用,其中是{{action}}帮助器声明了吗?

或者我如何获得对该DOM元素的引用?

这是代码示例。

  1. 视图中的代码,例如对标签按钮

    的操作
    <div class="view">
        {{view Ember.Checkbox checkedBinding="isCompleted" class="toggle"}}
        <label {{action editingA on="doubleClick"}}>{{title}}</label>
        <button class="destroy" {{action deleteAction}}></button>
    </div>
    
  2. 控制器中的代码,正如您所看到的,我正在标签

    doubleClick 之后尝试关注一些元素
    App.TodoController = Ember.ObjectController.extend({
    
        isEditing: false,
    
        editingA: function() {
            this.set('isEditing', true);
            // $(this).focus();
            // How to get reference to label DOM elem
        },
    
        updateAction: function() {
            var todo = this.get('model');
    
            this.get('store').commit();
    
            this.set('isEditing', false);
        }
    
    });
    

1 个答案:

答案 0 :(得分:0)

我的问题的解决方案在 Ember.View API文档中,在名为响应浏览器事件的部分中完整地描述。

应该创建自定义视图,当我需要引用DOM元素时,声明了{{action}}帮助器的位置。引用作为调用方法的第一个参数传递。

以下是示例代码:

AView = Ember.View.extend({
  click: function(event){
    // will be called when when an instance's
    // rendered element is clicked
  }
});