0

私はbackbone.jsで新しくなっています。ローカルストレージにデータを保存して取得するにはどうすればよいですか?私はjeromegnのBackbone.localStorageを使用していますが、なぜそれを追加したり、localstorageに保存できないのですか?Backbone.jsを使用してlocalStorageにデータを格納する方法

は、ここに私のコレクションです:

var Cases = Backbone.Collection.extend({ 
    localStorage: new Backbone.LocalStorage('dataObject'), 
}); 

ここに私の見解です:

var CreateCase = Backbone.View.extend({ 
    el: '.case', 
    render: function(){ 
     var template = _.template($('#create-case-view').html(), {}); 
     this.$el.html(template); 
    }, 
    events: { 
     'submit #caseForm': 'createCase', 
     'click .back': 'returnBack', 
     'focus #c_round': 'datePicker' 
    }, 
    createCase: function(e){ 
     var caseDetails = $(e.currentTarget).serializeObject(); 
     var cases = new Cases(); 
     //console.log(caseDetails); 
     cases.add(caseDetails, { 
      success: function(cases){ 
       console.log(cases); //I CAN'T ADD/SAVE IT TO THE COLLECTION 
       //router.navigate('', {trigger: true}); 
      } 
     }); 
     return false; 
    } 
    }); 

ユーザーは、それがコレクションに追加されなければならないフォームを送信します。

コレクションからどのように取得できますか?私はcases.fetch()を使用しました。データはありません。

答えて

3

私は、Collection.add機能のためにsuccessコールバックを受け入れるバックボーンのバージョンは認識していません。あなたのコードに基づいて、Collection.create関数を代わりに使用するように思われます。これはモデルを追加するだけでなく、保存します(つまり、同期を実行する)。

var Cases = Backbone.Collection.extend({ 
    localStorage: new Backbone.LocalStorage('dataObject'), 
}); 

var cases = new Cases(); 

cases.create({caseNo: 1, caseName: 'another case'}, { 
    success: function(caseModel){ // note, this is the model 
     console.log(caseModel); 
    } 
}); 

ここでアクションでそれを参照してください:https://jsfiddle.net/vbj2ouey/1/ (原因サンドボックスにそれが唯一のJSFiddleで働いていた)

+0

感謝を!どのように私は使用したlocalstorageに格納されたデータを取得できますか?作成ボタンをクリックするたびにlocalstorageのデータをプッシュしたいのですが、可能でしょうか? – p3ac3

+0

ああ、私はそれを把握する!笑今、本当にありがとう、ありがとう – p3ac3

関連する問題