Non è necessario eseguire l'override di sync
a livello globale. Si può fare per modello/Collezione cioè,
var MyModel = Backbone.Model.extend({
sync: customSync,
...
});
Questo evita l'override Backbone.sync a livello globale.
Ora, se non è necessario implementare una sincronizzazione completa, ad esempio è sufficiente eseguire l'override di fetch
, ovviamente è possibile farlo anche in base al modello.
Presumibilmente, si è visto Backbone.sync sovrascritto dalla versione localStorage. Questo non è davvero necessario (penserei che sia una cattiva pratica). È sufficiente definire la funzione personalizzata sync
e utilizzarla per modelli/raccolte.
Se non si desidera sovrascrivere 'Backbone.sync()' è sempre possibile sovrascrivere 'MyModel.sync()'. Se si va a sovrascrivere 'MyModel.fetch()' e 'MyModel.save()' forse si deve sovrascrivere anche 'MyModel.destroy()'. Comunque penso che tutto dipenda dal tuo motivo per non usare i metodi standard _sync_? – fguillen
@fguillen Alcuni dei miei modelli useranno localStorage mentre altri useranno il risparmio sul lato server ... –
Quindi lo faremo sovrascrivendo 'MyModel.sync()', dovremmo esserci le implementazioni di LocalStorage per Backbone. – fguillen