Fullcalendar v2存储将事件拖入localstorage

时间:2014-09-25 03:29:12

标签: javascript backbone.js drag-and-drop fullcalendar

如何将拖动的事件存储到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);
            }
        });
    },        

您可以看到我的选择功能完全正常工作。我的意思是选定的事件存储在数据库中。

1 个答案:

答案 0 :(得分:2)

我能够复制你的例子,它工作得很好,我唯一添加的是事件的定义,我把它作为主干集合

var Events = Backbone.Collection.extend({});

我认为您需要在本地存储中设置值时进行调试,尝试记录

的值
JSON.stringify(events)

在设置本地存储之前

编辑: jsfiddle:http://jsfiddle.net/mfarouk/vcsr45q8/25/