Estoy tratando de crear una lista de elementos (por ejemplo, libros) y me gustaría permitir que el usuario filtre esta lista (por ejemplo, por autor). Esperaría que cada elemento en la lista tuviera su propia vista, y que la lista también tuviera una vista. Sin embargo, no puedo "ver" cómo encajan en Backbone.¿Vistas dentro de las vistas? ¿Cómo generar listas de elementos con Backbone.js?
Actualmente, mi código es el siguiente (coffeescript):
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}))
Lo que me gustaría entender es cómo crear cada elemento <li>
en la lista con su propio punto de vista + plantilla de modo que pueda filtrarlos por autor.
Gracias! ¿Cómo se utilizarían los métodos 'filter' de Underscore para filtrar los libros por autor? –
Además, ¿podría proporcionar un ejemplo de cómo se escribiría una plantilla anidando una vista anidando una plantilla? Solo en caso de que uno quiera realmente lograr esa estructura, más para fines de aprendizaje que para el uso real. :) –