szukam lepszego rozwiązania na dwie rzeczy:backbone.js: elegancki sposób, aby sprawdzić, czy dane gotowy i jeśli zestaw danych jest pusta
Jak mogę rozumieć, jeśli dane są pobierane i gotowe , Używam
BasicDealList.on("reset", function(){})
, aby zrozumieć, czy dane są pobierane z ajax i parsowane i gotowe do użycia, ale czuje się brudny.Jeżeli pusty JSON pochodzi od pobierania takich jak
{}
, to nadal pokazuje BasicDealList.length jako 1, podczas gdy powinno być 0 więc musiałem sprawdzić, czy pierwszy element jest pusty poprzezcollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
który jest bardzo brzydki.
Oto kod:
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();
Dziękuję bardzo za szczegółowe wyjaśnienie! – Hellnar