civile complète ne s'affichant lors de la charge (avec dorsale)

Je suis en utilisant le plugin jQuery calendrier complet en conjonction avec backbone.js et avoir un problème là où il n'affiche pas correctement lors du premier chargement.

C'est ma fonction rendu de l'épine dorsale de la vue contenant le calendrier:

render: function() {

    var that = this;

    //DEBUG:
    //console.log({entries: data});

    this.$el.html(this.template(this.serialize()));

    this.$('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },

        height: that.$el.parent().height()
    });

            //prints undefined
    console.log(this.$('#calendar').fullCalendar('getView').title);

    window.setTimeout(function() {
        this.$('#calendar').fullCalendar('changeView','agendaWeek');
    }, 500);


    return this;
}

Vous pouvez le voir j'ai un délai de 500 ms inclus. Quand j'délai de 500 ms, puis changez la vue agendaWeek, il va s'afficher. Cependant, si je n'ai pas de retard, le calendrier ne s'affiche pas. Il n'y a pas d'erreurs imprimé dans les deux cas.

Je suis à une perte de ce que d'essayer ici, ou de ce qui pourrait mal se passer. Est-il un rappel pour la création du calendrier que je suis absent quelque part dans les docs?

Grâce

EDIT: pourrait-il que la .html() une fonction n'est pas complète et causer un problème?

Ne Fullcalendar peut-être se soucient de la taille ou de la position de son élément? Je suis venu à travers, éventuellement, des problèmes similaires avec Google Maps et la setTimeout(..., 0) astuce a fonctionné pour moi.
Je suis sûr que la question est ce que @muistooshort fait allusion. J'ai utilisé le calendrier complet plugin et il ne se soucie de la "taille et position" de l'élément.
La question reste si vous le code de la hauteur? Ce que ce.serialize() retourne?
c'.serialize() devrait peut-être être présent.de modèle.la méthode toJSON() ?

OriginalL'auteur Troy Cosentino | 2013-08-12