如何使用 Backbone.js 在 localStorage 中存储数据
How to store data in localStorage using Backbone.js
我是 backbone.js 的新手。如何将数据存储在我的本地存储中并检索它们?我正在使用 jeromegn 的 Backbone.localStorage 但为什么我不能将它添加或保存到本地存储中?
这是我的 collection:
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;
}
});
当用户提交表单时,它应该被添加到 collection。
如何从 collection 中检索它?我用了 cases.fetch();但是没有数据。
我不知道 Backbone 的任何版本接受 Collection.add function. Based on your code, it looks like you want the Collection.create 函数的 success
回调,它不仅会添加您的模型,还会保存它(即执行同步)。
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)
我是 backbone.js 的新手。如何将数据存储在我的本地存储中并检索它们?我正在使用 jeromegn 的 Backbone.localStorage 但为什么我不能将它添加或保存到本地存储中?
这是我的 collection:
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;
}
});
当用户提交表单时,它应该被添加到 collection。
如何从 collection 中检索它?我用了 cases.fetch();但是没有数据。
我不知道 Backbone 的任何版本接受 Collection.add function. Based on your code, it looks like you want the Collection.create 函数的 success
回调,它不仅会添加您的模型,还会保存它(即执行同步)。
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)