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

相关问题