javascript - traductor - backbone vs react
Backbone toJSON (1)
Estoy muy cansado o realmente confundido ... Pero no estoy seguro ... Tengo una configuración javascript de parse.com (es exactamente como backbone.js solo con el análisis en lugar de la red troncal). Y tengo un modelo y una colección, y todo funciona. Pero el maldito toJSON (); no funciona, simplemente devuelve un [] en console.log ... Sin embargo, si ejecuto la misma función en la consola de Chromes, funciona y devuelve los valores correctos.
¿¡Alguna ayuda!?
Todo este hermoso código está envuelto en un documento listo (y tenía algún otro código que no es relativo y sí tengo Parse.initialize()
''d it.
var Schedule = Parse.Object.extend({
className: "schedule"
});
var ScheduleList = Parse.Collection.extend({
model: Schedule
});
schedule = new ScheduleList();
schedulejs3 = schedule.toJSON();
schedule.query = new Parse.Query(Schedule);
schedule.query.ascending("date");
schedule.query.limit(''500'');
schedulejs2 = schedule.toJSON();
schedule.fetch();
schedulejs = schedule.toJSON();
console.log(schedulejs,schedulejs2,schedulejs3); <-- All three return []
var ScheduleView = Parse.View.extend({
el: $("#schedule-holder"),
initialize: function() {
this.schedule = new ScheduleList();
this.schedule.query = new Parse.Query(Schedule);
this.schedule.query.ascending("date");
this.schedule.query.limit(''500'');
this.schedule.fetch();
this.schedule.js = this.schedule.toJSON();
this.render;
},
render: function() {
var template = Handlebars.compile($("#schedule-item").html());
$(this.el).html(template({shows: this.schedule.toJSON()}));
return this;
}
});
var App = new ScheduleView().render();
Pero si abro la consola en Chrome y ejecuto schedule.toJSON (); Obtengo los valores correctos ... Como pueden ver, he destruido la configuración de mi backbone.js tratando de resolver esto (en caso de que se estén preguntando por qué todo está por todas partes). Y una pequeña nota, estoy usando Zepto.js no jQuery.
¡Gracias!
Probablemente en el momento de ejecutar schedule.toJSON()
todavía está vacío.
Recuerde que Collection.fetch()
es un método asincrónico .
Intenta modificar esta línea:
schedule.fetch();
Por esto:
schedule.fetch({ success: function() { console.log( "what about now?", schedule.toJSON() ) } };
(Probablemente vendrá con un problema de contexto para que la variable de schedule
sea accesible en el controlador de success
)