适用于HTML5 LocalStorage的Fullcalendar

时间:2012-03-25 13:49:03

标签: javascript jquery html5

嘿伙计们我正在使用Full Calender jQuery插件。

我想存储事件并通过LocalStorage HTML5检索。

我已经使用JSON实现了存储部分,并通过JSON Parse从localstorage项目中获取了该项目。

当我循环通过JSON值(超过50个值)并将其分配给事件对象时,它不能正常运行。

这是我的循环(样本)

var vEvents = '[';

for(i=1; i<=1; i++)
{
    vEvents += '{ "title": "new appointment", "start": "12-MAR-2012 14:00"  }';
}

vEvents += ']';

并像这样分配

events: vEvents,

这是控制台日志o / p: -

[{ "title": "new appointment", "start": "12-MAR-2012 14:00"  }]

fullcalender没有获取正确的o / p,而如果我把它放在下面(静态)它正常工作。

var vEvents = [{ "title": "new appointment", "start": "12-MAR-2012 14:00"  }];

请帮助我。

2 个答案:

答案 0 :(得分:1)

在第一种情况下,您只是附加一个字符串,而fullcalendar需要一个对象(这就是第二种情况的原因)。在将数据存储在localStorage之前,只需将其转换为JSON字符串。

localStorage.eventsList = JSON.stringify(vEvents);

从商店检索时将其转换回对象

var events = JSON.parse(localStorage.eventsList);

答案 1 :(得分:0)

感谢您的努力。这就是我存储的方式:

calendar.fullCalendar('renderEvent',{title: title,start: start,
                            end: end,
                            allDay: allDay,
                            description :'test',
                            save : localStorage.setItem("iCals"+eventIdLocal, JSON.stringify({"title": title, "start": start,"end" : end , "allDay" : allDay }))

                        } 

这就是我回收的方式:

var eventIdLocal = localStorage.getItem("getiCalsEventIdiCals");

        var title;

        valeventsiCals = '[';  

        for(i=1; i<=eventIdLocal; i++)
        {
            var numval = JSON.parse(localStorage.getItem("iCals"+i));

            valeventsiCals += '{"id" :"'+i+'"',
            valeventsiCals += ',"title" :"'+numval.title+'"',
            valeventsiCals += ',"start" :"'+numval.start+'"';

            if(i<eventIdLocal)
            valeventsiCals += "},";  
        }   

        valeventsiCals +='}]';