Foros del Web » Programando para Internet » Javascript » Frameworks JS »

backbone: ¿como pasar una colección a un router?

Estas en el tema de backbone: ¿como pasar una colección a un router? en el foro de Frameworks JS en Foros del Web. Hola, comentarles que tengo una colección llamada catalogo_de_productos @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var Producto = Backbone. Model . extend ( { } ...
  #1 (permalink)  
Antiguo 23/07/2014, 14:56
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
backbone: ¿como pasar una colección a un router?

Hola, comentarles que tengo una colección llamada catalogo_de_productos
Código Javascript:
Ver original
  1. var Producto = Backbone.Model.extend({});
  2. var Catalogo = Backbone.Collection.extend({ model : Producto });
  3. var Vista = Backbone.View.extend({});
  4.  
  5. var catalogo_de_productos = new Catalogo([
  6.     { nombre : "el abuelo marsala", precio: 42.75,  categoria : "vinos" },
  7.     { nombre : "moscato promesa", precio: 14.5,  categoria : "vinos" },
  8.     { nombre : "black label x750", precio: 577,  categoria : "whiskys" },
  9.     { nombre : "red label x750", precio: 363,  categoria : "whiskys" }
  10. ]);
  11.  
  12. $(function(){  
  13.     var productos = { productos : catalogo_de_productos.toJSON() };
  14.     var template = _.template( $("#lista_template").html(), productos);
  15.     var index = new Vista({ el: $("#lista_container") });
  16.     index.$el.html( template );
  17. });
que recorro y muestro por completa en el siguiente template
Código HTML:
Ver original
  1. <div id="lista_container"></div>
  2. <script type="text/template" id="lista_template">
  3.     <tr>
  4.         <td><b>producto</b></td>
  5.         <td><b>precio</b></td>
  6.     </tr>  
  7.     <% var n = 0;%>
  8.     <% _.each(productos, function(producto) { n++;%>
  9.     <tr>
  10.         <td><% print(producto.nombre); %></td>
  11.         <td><% print(producto.precio)); %></td>            
  12.     </tr>    
  13.     <% }); %>

Hasta acá funciona perfecto, solo que ahora quiero mostrar en una vista toda la colección y en otra solo los objetos cuya categoría sea igual a "whiskys" , para lo cual preparo el objeto que pasaré a la vista
Código Javascript:
Ver original
  1. var cat = catalogo_de_productos.where({categoria: "whiskys"});
  2. var whiskys = { productos : JSON.parse(JSON.stringify(cat)) };
  3. console.log(whiskys);  // { productos : [ { nombre : "black label x750", precio: 577,  categoria : "whiskys" }, { nombre : "red label x750", precio: 363,  categoria : "whiskys" }]}
y escribo las rutas
Código Javascript:
Ver original
  1. var Ruta = Backbone.Router.extend({
  2.     routes : {
  3.         "" : "todos",
  4.         "whiskys" : "whiskys"
  5.     },
  6.     todos   : function () { console.log("todos los productos"); },
  7.     whiskys : function () { console.log("solo los whiskys");    }
  8. });
  9. var appRouter = new Ruta();
  10. Backbone.history.start();
Las rutas funcionan perfecto pero no se como pasar el objeto "whiskys" previamente preparado para que funcione dentro de la función de ruta tambien llamada "whiskys".
Espero me puedan echar una mano en este punto, desde ya les agradezco si pueden compartirme algun link para estudiar.
Un saludo

Etiquetas: funcion, html, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.