2017-05-10 14 views
0

からBACKBONE.JSコレクションを復元し、私はそうのようなのlocalStorageするコレクションの配列を保存しています:BACKBONE.JSでのlocalStorage

for (var thing of app.things) { 
    localStorage.setItem('thing-' + thing.cid, JSON.stringify(thing.collection.toJSON())); 
} 

私はこれらを確認することができますは、クロームのlocalStorageインスペクタに格納されています。

私はこのコードでそれらを復元しようとしています:

var localStorageRef = localStorage.getItem('thing-' + thing.cid); 
if (localStorageRef) { 
    thing.collection = JSON.parse(localStorageRef); 
} 

これはエラーをスローしませんが、それは次の時間が、私は(setItemへの)最初のコードをトリガーしようという意味ではありません次のエラーが発生します。

Uncaught TypeError: stave.collection.toJSON is not a function 

私の2番目のコードチャンクには、最初のチャンクがもう機能しなくなっています。

答えて

0

thing.collectionを単純な配列に置き換えます。代わりに、resetは、解析されたデータのコレクションの内容です。

thing.collection.reset(JSON.parse(localStorageRef)); 

それともthing.collectionが既に収集されていない場合は、新しいものを作成します。

thing.collection = new Backbone.Collection(JSON.parse(localStorageRef)); 
関連する問題