Я ищу лучшее решение для двух вещей:
-
Как я могу понять, извлекаются и готовы ли данные, я использую
BasicDealList.on("reset", function(){})
, чтобы понять, извлекаются ли данные из ajax и анализируются и готовы к использованию, но он чувствует себя грязным. -
Если пустой JSON происходит из набора, например
{}
, он по-прежнему показывает BasicDealList.length как 1, тогда как он должен быть 0, поэтому мне пришлось проверить, не является ли первый элемент пустым черезcollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
, который очень уродливый.
Вот код:
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();