Hola, contarles que estoy trabajando con backbone y django rest framework
Una vez creada la api rest y ya con datos en el servidor, creo el modelo y la coleccion backbone:
Código Javascript
:
Ver originalvar Contact = Backbone.Model.extend();
var Contacts = Backbone.Collection.extend({
url: '/api/contacts/', //en esta url esta la api rest
model: Contact
});
Hasta acá todo bien, el problema viene cuando intento pasar la coleccion al template por medio de una vista:
Código Javascript
:
Ver originalvar 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 );
}
});
Como se puede observar, la variable data almacena:
- 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