Cómo representar la recolección en la vista con valores adicionales en Backbone.js
-
27-10-2019 - |
Pregunta
Me gustaría saber cómo debo pasar algunos valores con la colección que no es parte de ningún modelo. Por ejemplo en este ejemplo http://jsfiddle.net/5zafa/20/ Asigné el título de la vista y pasé completa colección a la plantilla, y dentro de esa plantilla enojo cada modelo de esa colección.
- ¿Es posible no escribir variables largas como
items.models[x].attributes.id
, sería bueno si pudiera hacer algo como estoitems[x][id]
- Sé que sería posible crear vistas separadas para cada fila y título. Pero me gustaría mantenerlo en una visión. ¿Podrías sugerirme por favor? ¿Puede estar allí alguna forma de hacer esto?
Si algo no está claro, intentaré proporcionar más información.
Gracias,
Solución
En lugar de pasar en elementos.tojson () pase en un objeto con los nombres que desea usar, luego use los nombres para hacer referencia a los valores que desea hacer referencia en su plantilla.
Su función de renderización se verá así:
render: function() {
template= _.template($('#list_template').html());
$(this.el).html(template({
items : this.collection.toJSON(),
title : "Title of the listing"
}));
$('#list_container').html(this.el);
}
Y cambie su plantilla para verse así:
<% for(x in items) { %>
<li><%= items[x].id %> - <%= items[x].name %></li>
<% } %>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow