我正在为两件事寻找更好的解决方案:
我如何了解数据是否已获取并准备好,我
BasicDealList.on("reset", function(){})
用来了解数据是否从 ajax 获取并解析并准备好使用但感觉很脏。如果一个空的 JSON 来自于 fetch
{}
,它仍然显示 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();