0

我是backbone.js的新用戶。如何將數據存儲在本地存儲中並檢索它們?我正在使用jeromegn的Backbone.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

我不知道Backbone的任何版本,它接受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中存儲的數據?我想在每次點擊創建按鈕時在本地存儲中推送數據,這可能嗎? – p3ac3

+0

哦,我知道了!大聲笑現在非常感謝你的快樂 – p3ac3

相關問題