Sto cercando una soluzione migliore per due cose:Backbone.js: modo elegante per controllare se i dati pronti e se il set di dati è vuota
Come posso capire se i dati vengono recuperati e pronto , Io uso
BasicDealList.on("reset", function(){})
per capire se i dati vengono recuperati da ajax e analizzati e pronti per essere utilizzati, ma si sente sporco.Se un JSON vuoto viene dal recupero come
{}
, mostra ancora come BasicDealList.length 1 mentre dovrebbe essere 0 quindi sono stato costretto a controllare se il primo elemento è vuoto tramitecollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
che è molto brutto.
Ecco il codice:
BasicDeal = Backbone.Model.extend();
BasicDealCollection = Backbone.Collection.extend({
model: BasicDeal,
url: '/some/ajax/url/',
});
BasicDealList = new BasicDealCollection();
BasicDealList.on("reset", function(collection, response){
isEmpty = collection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]);
if (isEmpty){
// render no deal found html
}
else{
// render list of deals
}
}
BasicDealList.fetch();
Grazie mille per la spiegazione dettagliata! – Hellnar