如何从 Backbone.LocalStorage 获取 Backbone.Collection

Posted

技术标签:

【中文标题】如何从 Backbone.LocalStorage 获取 Backbone.Collection【英文标题】:How to get Backbone.Collection from Backbone.LocalStorage 【发布时间】:2012-09-18 09:07:57 【问题描述】:

假设我可以从 javascript 控制台得到以下结果:

var ls = new Backbone.LocalStorage("items"); 
ls; // "name":"items","records":["1244f588-be3d-c493-5c86-b2abb997af82"]

我应该如何从Backbone.LocalStorage 获得Backbone.Collection

附: 集合看起来像

[

"title":"test",
"completed":false,
"order":1,
"id":"1244f588-be3d-c493-5c86-b2abb997af82"
,

"title":"test2",
"completed":false,
"order":2,
"id":"8a8658b9-b636-eac3-4c54-03c279a73c2d"

]

【问题讨论】:

【参考方案1】:

要么创建一个空集合,并将 collection.localStorage 设置为您的 Backbone.LocalStorage 对象并获取它:

var c = new Backbone.Collection();
c.localStorage = new Backbone.LocalStorage("items");
c.fetch();
console.log(c.pluck('id'));

或在您的 Backbone.LocalStorage 对象上使用 findAll 以获取存储中的模型数组:

var ls = new Backbone.LocalStorage("items");
console.log(ls.findAll());

与http://jsfiddle.net/nikoshr/8pHNG/一起玩的小提琴

【讨论】:

collection.fetch() 在本地存储中不存在集合时不执行失败回调.. @nikoshr 你的小提琴坏了。不能玩那个

以上是关于如何从 Backbone.LocalStorage 获取 Backbone.Collection的主要内容,如果未能解决你的问题,请参考以下文章

Backbone的localStorage.js源码详细分析

清除后,localStorage 会记住以前的值

骨干本地存储“未定义不是函数”

如何从其他面板从 JTextField 获取输入

如何从外部从 GitHub 加载 JavaScript 文件? [复制]

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数