J'essaye de construire une liste d'articles (par exemple des livres) et je voudrais permettre alors à l'utilisateur de filtrer cette liste (par exemple par l'auteur). Je m'attendrais à ce que chaque élément de la liste ait sa propre vue, et que la liste elle-même ait aussi une vue. Cependant, je n'arrive pas à "voir" comment ils s'emboîtent dans Backbone.Vues dans les vues? Comment générer des listes d'éléments avec Backbone.js?
Actuellement, mon code est le suivant (café-script):
class Book extends Backbone.Model
class BookList extends Backbone.Collection
model: Book
url: "/library/books.json"
books = new BookList
class BookListView extends Backbone.View
initialize: ->
@template = _.template('''
<ul>
<% books.each(function(book){ %>
<li><%= book.get('title') %>, <%= book.get('author') %></li>
<% }); %>
</ul>
''')
@render
render: ->
template = @template
books.fetch success: -> jQuery("#books").html(template({'books': books}))
Ce que je voudrais comprendre comment créer chaque élément <li>
dans la liste avec son propre point de vue + modèle afin que je peux filtrez-les par auteur.
Merci! Comment utiliser les méthodes 'filter' d'Underscore pour filtrer les livres par auteur? –
En outre, pourriez-vous donner un exemple de la façon dont on écrirait un modèle imbriquant une vue qui imbrique un modèle? Juste au cas où l'on voulait réellement réaliser une telle structure - plus à des fins d'apprentissage que d'utilisation réelle. :) –