[英]How can I save a collection, or atleast a portion of it, in backbone.js
[英]Backbone.js - How do I save a collection to localStorage?
我已經在代碼中包含了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文檔中所讀)。 我根據這篇文章添加了該方法
那么,我該怎么做呢?
骨干收集僅用於存儲模型,並且模型包含數據。 因此,我認為localStorage插件沒有內置的方式可以將自定義屬性存儲在集合中。
您的屬性用於保持應用程序的狀態,該屬性應為“控制器”的一部分,在主干情況下為“視圖”。 並且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'));
}
您可以根據需要在集合中執行相同的操作。 沒有理由通過主干同步來侵入steel.localStorage插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.