2012-02-20 140 views
3

问题:单击后,我看到evt.target.attributes将所有属性存储在数组中。有没有更简单的方法,而不必迭代所有的属性来获得某个属性值?在这个例子中,我需要单击元素的'note'属性的值。Emberjs - 获取点击元素的属性

模板:

<a note="C" {{action "play" on="click"}}>></a> 

Click处理程序(播放):

var keys = Ember.View.create({ 
    templateName: 'keys', 
    notes: this.get('allKeys'), 
    play:function(evt){ 
     var attributes= evt.target.attributes; 
     console.log(attributes); 
    } 

回答

6

如果控制器不支持的观点,一种解决方案是把事件目标成jQuery对象

play : function(event) { 
    var note = $(event.target).attr("note"); 
    // More code here 
} 
0

另一种方法是将属性值作为参数传递给动作。

<a note="C" onClick={{action "play" value="target.note"}}></a> 

你也可以像这样访问:

... 
actions: { 
    play(note) { 
     console.log(note); 
    }, 
}, 
...