Pregunta

Pregunta: Al hacer clic, veo que evt.target.Attributes almacena todos los atributos en una matriz. ¿Hay una manera más fácil sin tener que iterar todos los atributos para obtener un cierto valor de atributos? En este ejemplo, necesito el valor del atributo 'Nota' para el elemento que hizo clic.

Modelo:

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

Haga clic en Handler (reproducir):

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

Solución

Si un controlador no está respaldando la vista, una solución es convertir el objetivo del evento en un objeto jQuery

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

Otros consejos

Otra forma es pasar el valor del atributo como parámetro a la acción.

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

Y puedes acceder a él así:

...
actions: {
    play(note) {
        console.log(note);
    },
},
...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top