Busco una solución mejor para dos cosas:Backbone.js: elegante manera de comprobar si los datos de lista y si el conjunto de datos está vacía
¿Cómo puedo entender si los datos se trae y listo , Uso
BasicDealList.on("reset", function(){})
para entender si los datos se obtienen de ajax y se analizan y están listos para ser utilizados, pero se siente sucio.Si un JSON vacío viene de ir a buscar tal como
{}
, todavía muestra BasicDealList.length como 1, mientras que debería ser 0 así que estaba obligado a comprobar si el primer elemento está vacía a través decollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
que es muy feo.
Aquí está el código:
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();
¡Muchas gracias por la explicación detallada! – Hellnar