如何从 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源码详细分析