gpt4 book ai didi

javascript - Backbone.js - 如何将集合保存到 localStorage?

转载 作者:行者123 更新时间:2023-12-01 03:28:08 27 4
gpt4 key购买 nike

我已经包含了Backbone.localStorage在我的代码中,但我似乎找不到将我的集合(或更具体地说是我的集合的属性)保存到 localStorage 的方法。

这是我的集合代码:

//Collection
var Playlist = Backbone.Collection.extend({
model: Song,
localStorage: new Backbone.LocalStorage('playlist'),
initialize: function(models,options) {
_.extend(this,_.pick(options, 'currentTrack'));
},
url: 'metadata',
parse: function(response){
return response
},
save: function(){
Backbone.sync('create', this, {
succes: function() {
console.log('Saved');
},
error: function(){
console.log('There was an error');
}
});
},
currentTrack: 0,
currentTime: 0
});

在我添加 save 方法之前,没有任何方法(正如我在 Backbone 文档中读到的那样)。我根据this post添加了该方法

那么,我该怎么做呢?

最佳答案

Backbone 集合只是简单存储模型,模型中包含数据。所以我不认为 localStorage 插件有内置的方法来在集合上存储自定义属性。

您的属性用于保持应用程序的状态,它应该是“ Controller ”的一部分,在主干的情况下是“ View ”。并且 View 可以直接从 localStorage 设置/获取它。

很简单:

saveState: function(){
localStorage.setItem('playlist.state',JSON.stringify({
currentTrack: this.currentTrack,
currentTime: this.currentTime
}));
},
retrieveState: function(){
return JSON.parse(localStorage.getItem('playlist.state'));
}

如果需要,您可以在集合中执行相同的操作。没有理由通过主干同步侵入backbone.localStorage插件来做到这一点。

关于javascript - Backbone.js - 如何将集合保存到 localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com