Ich bin für eine bessere Lösung für zwei Dinge suchen:Backbone.js: Elegante Art und Weise, wenn die Daten bereit zu prüfen, und wenn der Datensatz ist leer
Wie kann ich verstehen, wenn die Daten abgerufen und bereit Verwende ich
BasicDealList.on("reset", function(){})
, um zu verstehen, ob die Daten von AJAX geholt und geparst und bereit sind, verwendet zu werden, aber es fühlt sich schmutzig an.Wenn ein leeres JSON von Abrufen wie
{}
kommt, es zeigt immer noch BasicDealList.length als 1, während es 0 sein sollte, so war ich gezwungen, zu überprüfen, ob das erste Element übercollection.length == 1 && jQuery.isEmptyObject(BasicDealList.toJSON()[0]
leer ist, die sehr hässlich ist. Hier
ist der 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();
Vielen Dank für die detaillierte Erklärung! – Hellnar