Comment rendre la collection dans la vue avec des valeurs supplémentaires dans Backbone.js
-
27-10-2019 - |
Question
Je voudrais savoir comment dois-je passer quelques valeurs à la collecte qui ne fait pas partie d'un modele? Par exemple, dans cet exemple http://jsfiddle.net/5ZaFa/20/ J'affecté le titre de la vue et passé toute la collection de la matrice, et à l'intérieur de la boucle de modèle de chaque modèle de cette collection.
- Est-il possible de ne pas écrire des variables longues comme
items.models[x].attributes.id
, il serait bon si je pouvais faire quelque chose comme çaitems[x][id]
- Je sais qu'il serait possible de créer des vues distinctes pour chaque ligne et le titre. Mais je voudrais le garder dans une seule vue. Pourriez-vous me suggérer s'il vous plaît? Peut être il y a une façon de le faire?
Si quelque chose est pas clair, je vais essayer de fournir plus d'informations.
Merci,
La solution
Au lieu de passer dans items.toJSON () passe dans un objet avec les noms que vous souhaitez utiliser, puis utilisez les noms pour référencer les valeurs que vous souhaitez référence dans votre modèle.
Votre fonction sera rendu alors ressembler à ceci:
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);
}
et changer votre modèle pour ressembler à ceci:
<% for(x in items) { %>
<li><%= items[x].id %> - <%= items[x].name %></li>
<% } %>