2012-08-05 5 views
5

No quiero anular Backbone.sync() ya que algunos de mis modelos utilizarán realmente el estándar sync().¿Es una buena práctica anular fetch() y guardar() directamente desde el modelo?

¿Es una buena práctica anular fetch() y save() directamente desde el modelo?

+0

Si no desea sobrescribir 'Backbone.sync()' siempre puede anular 'MyModel.sync()'. Si va a reemplazar 'MyModel.fetch()' y 'MyModel.save()', quizás deba sobrescribir también 'MyModel.destroy()'. De todos modos, creo que todo depende de tu razón para no usar los métodos _sync_ estándar? – fguillen

+0

@fguillen Algunos de mis modelos usarán localStorage mientras que otros usarán el lado del servidor para guardar ... –

+0

Luego lo reemplazaría por 'MyModel.sync()', si hubiera implementaciones de LocalStorage para Backbone. – fguillen

Respuesta

4

No es necesario anular sync en todo el mundo. Puede hacerlo por Modelo/Colección, es decir,

var MyModel = Backbone.Model.extend({ 
    sync: customSync, 
    ... 
}); 

Esto evita anular Backbone.sync globalmente.

Ahora, si no necesita implementar una sincronización completa, por ejemplo, solo tiene que anular fetch, puede hacerlo también por modelo.

Presumiblemente, ha visto que Overbone.sync ha sido modificado por la versión localStorage. Esto de hecho no es necesario (creo que es una mala práctica). Basta con definir la función personalizada sync y dejar que los modelos/colecciones la utilicen.

Cuestiones relacionadas