如何清除骨干本地存储

pra*_*n64 8 clear local-storage backbone.js

javascript一个看起来很简单,只有localStorage.clear().

是否有类似于骨干本地存储的内容,如果没有,有人可以指出我正确的方向如何做到这一点.

我在考虑做这样的事情:

localStorage.each(localStorage.delete(本))

除了这不会指向那个元素吗?

dc-*_*dc- 5

很少有方法可以从Collection中执行此操作,但无论您选择哪种方式,都必须在每个模型上调用destroy,它将在客户端和服务器端(localStorage充当)运行同步并销毁它.

collection.each(function(model) {
      model.destroy();
    }
)
Run Code Online (Sandbox Code Playgroud)

更新

根据评论,看起来不再适用.因为这仍然标记为答案,包括下面应该起作用的答案skcin7.

while ((model=collection.shift())) 
    { model.destroy();
}
Run Code Online (Sandbox Code Playgroud)

  • 我发现这不起作用......它只会删除一些记录,而不是所有记录.我想,在迭代它时修改集合的东西.我最终得到了这个:var length = collection.length; for(var i = length - 1; i> = 0; i--){collection.at(i).destroy(); } (12认同)

Sör*_*oer 5

我知道这种感觉就像严重的挖掘,但我一直在寻找解决方案一段时间,上面的代码片段似乎都不适合我.无论我怎么尝试,我总是把收集的大小减少一半.

经过大量的摆弄后,我想到了这个:

var length = collection.length;
for (var i = 0; i < length; i++) {
    collection.at(0).destroy();
}
Run Code Online (Sandbox Code Playgroud)

Backbone正在"动态"删除项目,因此如果您有40个项目,则无法删除21.项目,因为只剩下20个项目.奇怪的是,这似乎也影响了collection.each()函数,这对我来说真的像个bug.

  • 我解释了为什么会发生[这里](http://stackoverflow.com/a/18395310/722238)以及解决方案. (2认同)