I'm looking for a better solution for two things:
How can I understand if the data is fetched and ready, I use
BasicDealList.on(reset, function(){})
to understand if the data is fetched from ajax and parsed and ready to be used but it feels dirty.If an empty JSON comes from fetching such as
{}
, it still shows BasicDealList.length as 1 while it should be 0 thus I was forced to check if the first element is empty viacollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
which is very ugly.
Here is the code:
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();