如何将拖动的事件存储到localstorage?我已经弄清楚了旧的fullcalendar版本,但这个解决方案不再适用了。
var EventsView = Backbone.View.extend({
el: document.getElementById("content"),
render: function() {
var self = this;
var events = JSON.parse(localStorage.getItem('events'));
var events = new Events(events);
var jsevents = events.toJSON();
this.el.innerHTML = _.template( calendarTemplate,{data : jsevents} );
$('#calendar').fullCalendar({
agenda: 'h:mm{ - h:mm}',
'': 'h(:mm)t',
aspectRatio: 1.5,
droppable: true,
weekend: true,
editable: true,
eventDrop: function(event) {
// ???????????????????????????????
},
defaultView: 'month',
firstDay: 1,
handleWindowResize: true,
allDayDefault: false,
firstHour: 7,
columnFormat: {
month: 'dddd',
week: 'ddd, dS',
day: 'dddd, MMM dS'
},
header: {
right: 'prev,next',
center: 'title',
left: 'month,agendaWeek,agendaDay'
},
selectable: true,
selectHelper: true,
select: function(start, end) {
var title = prompt('Event Title:');
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
events.push(eventData);
localStorage.setItem('events',JSON.stringify(events));
}
$('#calendar').fullCalendar('unselect');
},
events: function(start, end, timezone, callback) {
callback(jsevents);
}
});
},
您可以看到我的选择功能完全正常工作。我的意思是选定的事件存储在数据库中。
答案 0 :(得分:2)
我能够复制你的例子,它工作得很好,我唯一添加的是事件的定义,我把它作为主干集合
var Events = Backbone.Collection.extend({});
我认为您需要在本地存储中设置值时进行调试,尝试记录
的值JSON.stringify(events)
在设置本地存储之前
编辑: jsfiddle:http://jsfiddle.net/mfarouk/vcsr45q8/25/