Soy un fanático de establecer atributos dentro de una vista como tal ...
Backbone.View.extend ({ atributos: { data-attr: 'mydata' } });
... sin embargo, esto arroja un error debido al guión en la clave "data-attr".
SyntaxError no detectada: fichas inesperado -Me doy cuenta de que este es un token ilegal en un objeto de valor clave de JavaScript, sin embargo, esperaba que Backbone ofreciera alguna solución para esto, dado que pasar atributos de datos es uno de los escenarios más probables. He estado trabajando alrededor de esto estableciendo el atributo dentro de la función de renderizado usando jQuery:
render: function () { this. $ el.attr ('data-attr', 'mydata "'); }
Esto funciona, pero pensé en preguntar si hay otra opción.
Sí, es solo un objeto de JavaScript. Utilice claves entre comillas.
attributes: {
"data-attr": "mydata"
}
¡Ahh, pensé que lo había intentado! ¡Gracias!
¿Qué sugiere para pasar un atributo de datos al elemento DOM de la Vista desde los atributos dentro del Modelo de la Vista? Como tal...
atributos: { "data-attr": this.model.foo }
Estoy perdiendo el espacio para hacer referencia a "esto".
Error de tipo no detectado: no se puede leer la propiedad 'modelo' de indefinido
Puedes usar una función como esta:
attributes: function() {
return {
'data-attr': this.model.foo
};
}
Impresionante. Eso funciona perfectamente. ¡Gracias por las rápidas respuestas!
De nada, pero en el futuro, no use los tickets de error para soporte técnico como este; pruebe primero el canal de IRC o la lista de correo.
Feliz de. Lo intenté primero, pero solo hay otro usuario en DocumentCloud IRC, Turjakas, que no respondió.
Debe haber escrito mal: hay 242 personas en #documentcloud en freenode en este momento.
Comentario más útil
Puedes usar una función como esta: