Question

Je suis en train de créer un FullCalendar avec l'extérieur en faisant glisser les fonctionnalités où vous pouvez enregistrer les événements de l'agenda dans un cookie (j'aurais bien préféré enregistrer ce sur le serveur, mais ce n'est pas une option).J'utilise jquery cookie plugin pour le rendre plus facile.

Ce que j'ai obtenu jusqu'à présent est la save fonctionnalités (qui je crois est de travail):

function save() {
    var eventsFromCalendar = $('#calendar').fullCalendar( 'clientEvents');
    $.cookie("DSCalendar", eventsFromCalendar, {expires: 1});
}

...Mais je ne peux pas obtenir le calendrier pour inclure ce quand j'ensuite de l'ouvrir.J'ai essayé de le faire comme ça, mais il ne semble pas fonctionner à tous:

$(document).ready(function() {
     ....

        var savedEvents = $.cookie("DSCalendar");
        $('#calendar').fullCalendar({

            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            events: savedEvents,
             ...........

À tout hasard il y a quelqu'un là-bas qui a fait cela avant ou a une idée de comment je peux obtenir les événements enregistrés sans l'aide d'un serveur?

Était-ce utile?

La solution

Le cookie plugin ne peut pas stocker des objets complexes dans des tableaux, je pense.C'est pourquoi j'ai suggéré à l'aide de JSON.stringify.Toutefois, l'Objet tableau retourné par .fullCalendar('clientEvents') contient récursive les références de l'Objet - même JSON.stringify ne parvient pas à convertir ce avec succès.

Jetez un oeil à ce violon:http://jsfiddle.net/100thGear/v6tSd/

J'ai créé un temp tableau d'Objets avant de les stocker dans le cookie et puis JSON.stringify et JSON.parse a parfaitement fonctionné.

Laissez-moi savoir si cela aide.

Autres conseils

En FullCalendar V1, le contenu des clientventes comprend une paire d'objets de clé appelée "source" pour chaque événement, si vous chargez vos données à distance.Cette paire a l'URL des données à distance, qui renvoie la "structure circulaire convertie de la structure circulaire en Json" si vous essayez de limiter la clientèle afin de l'enregistrer ou de l'envoyer à un emplacement nécessitant une chaîne et non un tableau d'objets.Le travail autour de celui que j'ai utilisé est de supprimer la clé "Source" et l'objet avec le script suivant:

var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
for (var i = 0; i < eventsFromCalendar.length; i++) {
    delete eventsFromCalendar[i].source
    }
var jstrng = JSON.stringify(eventsFromCalendar);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top