如何存储“集合”包括本地存储中的所有模型?(backbone.js)
How to store a "collection" including all models in the local-storage? (backbone.js)
我在外部fetch()
函数中读取了一个大的xml文件,这工作得很好。我的问题是,如何将填充的集合保存到本地存储?如果本地存储已经存在,我该如何测试呢?否则将执行fetch()
。我需要在哪里添加集合中的代码?save()
吗?localStorage: new Backbone.LocalStorage("test_storage")
?
这个例子展示了一小段代码:
var test_collection = Backbone.Collection.extend( .. );
var test_collection_view = Backbone.View.extend( .. );
//--------------------------------------
// external fetch
//--------------------------------------
function fetch(){
return $.ajax({
url: 'TestInterface.xml',
method: 'GET',
dataType: 'xml',
success: function(response_xml) {
... //parse data to test_collection
}//end success
});//end ajax
}//end fetch
//--------------------------------------
// Initialize
//--------------------------------------
$(document).ready(function(){
$.when( fetch() ).done(function() {
var VIEW = new test_collection_view({collection: test_collection});
});//end when
});//end ready
更新:我也可以推荐在后续步骤中使用deferred:
返回延迟承诺对象并解析
您可以使用JSON.stringify()
:
test_collection.fetch({
success: function(collection, response) {
// Store an array containing the attributes hash of each model
// in the collection.
var collectionJSON = collection.toJSON();
// Store the collection as a JSON string.
localStorage.setItem('collection', JSON.stringify(collectionJSON));
}
});
然后,您可以使用:
检索您的集合数据:var collectionString = localStorage.getItem('collection');
var collection = JSON.parse(collectionString);
检查集合是否已经存储:
if (localStorage.getItem('collection') !== null) {
// ...
}
实现这一点的最佳方法是在您的fetch()
例程中。首先检查集合是否已存储,如果已存储则返回,否则取出。
相关文章:
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 将嵌套的主干模型存储并恢复到本地存储中
- 如何加载一次模型并将其存储到变量中
- 主干本地存储模型和集合
- 主干:将集合存储在模型中
- 将数据存储在模型&集合呼叫&取来
- 如何将angular.js模型变量存储在javascript变量中
- 无法将存储的响应映射到模型 - EmberJS
- 我的表单没有将参数存储在模型中
- 将 Google App Engine 数据存储模型传递给 JavaScript 代码
- 无法使用 store.getById() 从存储中读取模型记录
- 集合中的主干模型数据未保存到本地存储
- 模型的存储未定义
- 煎茶触摸 2 模型关联保存不正确的数据进行存储
- 从 JSON.file 获取模型并将其存储在本地存储主干
- ExtJS4网格存储/模型显示空行
- 对于具有一对多关系的主干模型,存储“;许多“;数组中的模型,而不是Collection
- Mongodb&Espress:将对象存储在模型中
- 具有存储访问权限的模型的类方法
- 如何从模型存储EXTJs中读取额外属性