Me gustaría guardar un modelo modificado en la base de datos (establecido anteriormente). Si la operación de guardar se redirigió a otra página (como ejemplo, podría ser cualquier otra acción).Cómo guardar con backbone.js sin especificar qué atributos, pero con una devolución de llamada
Model.save puede tener dos propiedades opcionales. Primero es un hash de propiedades, y el segundo son las opciones (como el éxito y la devolución de llamada de error). http://backbonejs.org/#Model-save
somemodel.set({foo: 'bar'});
//lots of other logic and misc steps the user has to do
somemodel.save(); //on success should go here
Desde los atributos ya están definidos, solo me falta la devolución de llamada.
En el pasado hice:
somemodel.save(somemodel.toJSON(), {
success: function() {
//other stuff
}
);
o pasando los valores de nuevo para el método Save
somemodel.save(
{ foo: this.$('input').val()},
{ success: function(){}
);
Estoy buscando una manera de limpiar esto. Los documentos indican que el modelo disparará un estado de cambio si hay nuevas propiedades. Pero me gustaría redirigir al usuario de todos modos (guardando en contenido nuevo o antiguo/sin alterar).
esto no existe:
somemodel.on('success', function(){});
y esto, es sólo para la validación:
if(somemodel.save()) { //action }
también "sincronización" es el evento incorrecto (ya que también trabaja para destruir)
¿Alguna ayuda?
Gracias, esto es definitivamente mejor que lo que tenía. Para mal, todavía se siente un poco sucio (proporcione un paramaestro, solo por el hecho de proporcionar un parámetro). Tal vez debería profundizar y sobrescribir/extender Backbone.sync para devolver un evento de "éxito" y "error". Es extraño que lo haga de manera predeterminada, ya que la red troncal se trata tanto de un acoplamiento débil con eventos como de devoluciones de llamadas. – Jareish
{} y null no son lo mismo en este contexto.{} significa enviar un objeto vacío al servidor, mientras que nulo significa que no está pasando ningún objeto para guardar(), y que save() debería enviar los atributos del objeto. – jerzy
@jerzy Eso es incorrecto, compruebe Backbone doc en 'model.save': se envía una representación completa del recurso al servidor si no se pasa una opción' patch: true' http://backbonejs.org/# Modelo-guardar. {} y null tendrán el mismo comportamiento – nikoshr