Я ищу лучшее решение для двух вещей:Backbone.js: Элегантный способ проверить, если данные готовы, и если набор данных пуст
Как я могу понять, если данные извлекаются и готовы , Я использую
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();
Благодарим вас за подробное объяснение! – Hellnar