Una vez creada la api rest y ya con datos en el servidor, creo el modelo y la coleccion backbone:
Código Javascript:
Hasta acá todo bien, el problema viene cuando intento pasar la coleccion al template por medio de una vista:Ver original
var Contact = Backbone.Model.extend(); var Contacts = Backbone.Collection.extend({ url: '/api/contacts/', //en esta url esta la api rest model: Contact });
Código Javascript:
Como se puede observar, la variable data almacena: Ver original
var ContactView = Backbone.View.extend({ initialize : function () { this.render(); }, render: function(){ var c = new Contacts(); var datos; var data = c.fetch({ success: function (model, resp){ console.log(model); //child {length: 5, models: Array[5], _byId: Object, constructor: function, url: "/api/contacts/"…} console.log(resp); //[Object, Object, Object, Object, Object] datos = resp console.log(datos); //[Object, Object, Object, Object, Object] }, error: function (model, resp){ console.log("error"); } }); //var data = c.fetch(); //console.log(data.toJSON()); //[ ] un maldito arreglo vacío. console.log(data); //Object {readyState: 1, responseJSON: Array[5], responseText: "[{"url": "http://localhost:8000/api/contacts/1/", "id": 1, "first_name": "Alice", "last_name": "Arten", "phone_number": "555-0184"}, {"url": "http://localhost:8000/api/contacts/2/", "id": 2, "first_name": "Bob", "last_name": "Brigham", "phone_number": "555-0163"}, {"url": "http://localhost:8000/api/contacts/3/", "id": 3, "first_name": "Charlie", "last_name": "Campbell", "phone_number": "555-0129"}, {"url": "http://localhost:8000/api/contacts/4/", "id": 4, "first_name": "Vic", "last_name": "Vil", "phone_number": "999-3659"}, {"url": "http://localhost:8000/api/contacts/5/", "id": 5, "first_name": "chango", "last_name": "cena", "phone_number": "123-4567"}]"} console.log(datos); //undefined var template = _.template( $("#lista_template").html(), data); //Aqui data debería ser [Object, Object, Object, Object, Object] this.$el.html( template ); } });
- o "undefined"
- o un arreglo vacío
- o un objeto que tiene una propiedad llamada responseText y otra responseJSON (si llamo a estas con data.responseText lo que obtengo es nuevamente "undefined")
Pero lo que yo necesito es el array de objetos que devuelve el argumento resp del método success cuando hacemos fecth() a la colección.
¿Como puedo obtener dicho array?
Desde ya muchas gracias.
Saludos