質問
質問: クリックすると、evt.target.attributesがすべての属性を配列に保存していることがわかります。特定の属性値を取得するためにすべての属性を反復することなく、より簡単な方法はありますか?この例では、クリックされた要素の「note」属性の値が必要です。
テンプレート:
<a note="C" {{action "play" on="click"}}>></a>
ハンドラー]をクリックします(再生):
var keys = Ember.View.create({
templateName: 'keys',
notes: this.get('allKeys'),
play:function(evt){
var attributes= evt.target.attributes;
console.log(attributes);
}
解決
コントローラーがビューをバックしていない場合、1つの解決策は、イベントターゲットをjQueryオブジェクトに変えることです
play : function(event) {
var note = $(event.target).attr("note");
// More code here
}
他のヒント
別の方法は、属性値をパラメーターとしてアクションに渡すことです。
<a note="C" onClick={{action "play" value="target.note"}}></a>
そして、あなたは次のようにそれにアクセスすることができます:
...
actions: {
play(note) {
console.log(note);
},
},
...
所属していません StackOverflow