Soy consciente de que se puede hacer y he examinado bastantes lugares (que incluyen: ¿Las mejores prácticas para guardar una colección completa? ). Pero todavía no tengo claro "exactamente cómo" está escrito en código. (La publicación lo explica en inglés. Sería genial tener una explicación específica de JavaScript :)
Digamos que tengo una colección de modelos; los modelos en sí pueden tener colecciones anidadas. He anulado el método toJSON () de la colección principal y obtengo un objeto JSON válido. Deseo "guardar" la colección completa (JSON correspondiente), pero la red troncal no parece estar incorporada con esa funcionalidad.
var MyCollection = Backbone.Collection.extend({
model:MyModel,
//something to save?
save: function() {
//what to write here?
}
});
Sé que en algún lugar tienes que decir:
Backbone.sync = function(method, model, options){
/*
* What goes in here?? If at all anything needs to be done?
* Where to declare this in the program? And how is it called?
*/
}
Una vez que la 'vista' ha terminado con el procesamiento, es responsable de decirle a la colección que se "guarde" en el servidor (capaz de manejar una solicitud de actualización / creación masiva).
Preguntas que surgen:
- ¿Cómo / qué escribir en el código para "conectarlo todo"?
- ¿Cuál es la ubicación 'correcta' de las devoluciones de llamada y cómo especificar una devolución de llamada de "éxito / error"? Quiero decir sintácticamente? No tengo claro la sintaxis de registrar devoluciones de llamada en la red troncal ...
Si de hecho es un trabajo complicado, ¿podemos llamar a jQuery.ajax dentro de una vista y pasar el this.successMethod
o this.errorMethod
como devoluciones de llamada de éxito / error? ¿Funcionará?
Necesito sincronizarme con la forma de pensar de Backbone. Sé que definitivamente me estoy perdiendo algo, la sincronización de colecciones enteras.