2012-02-20 111 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); 
    }, 
}, 
...