我是backbone.js的新手。如何将数据存储在本地存储中并检索它们?我正在使用jeromegn的Backbone.localStorage,但为什么我不能添加或保存到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();但是没有数据。
答案 0 :(得分: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中工作)