volle Kalender nicht angezeigt, wenn es geladen (mit Rückgrat)

Ich bin mit dem jQuery-plugin volle Kalender in Verbindung mit backbone.js und habe ein Problem, wo es nicht richtig angezeigt, beim ersten laden.

Dies ist meine render Funktion für das backbone-view mit Kalender:

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;
}

Können Sie sehen, habe ich ein set timeout von 500 ms aufgenommen. Wenn ich die Verzögerung 500 ms, und ändern Sie dann die Ansicht auf agendaWeek, es wird angezeigt. Wenn ich allerdings nicht verzögern, wird der Kalender nicht angezeigt. Es gibt keine Fehler printed in jedem Fall.

Ich bin an einem Verlust, was hier zu versuchen, oder was könnte falsch gehen. Gibt es einen Rückruf für die Erstellung der Kalender, die mir fehlen irgendwo in den docs?

Dank

EDIT: könnte es sein, dass die .html() funciton ist nicht vollständig und verursacht ein Problem?

  • Tut Fullcalendar vielleicht kümmern sich die Größe oder position des Elements? Ich habe über kommen möglicherweise ähnliche Probleme mit Google Maps und der setTimeout(..., 0) trick arbeitete für mich.
  • Ich bin mir ziemlich sicher, die Frage ist, was @muistooshort angedeutet. Ich habe die volle Kalender-plugin und es macht die Pflege über die "Größe und position" der element.
  • Hat das Problem bleibt, wenn Sie hartcodieren, auf der Höhe? Was dies.serialize() gibt?
  • diese.serialize() sollte vielleicht diese.Modell.toJSON() ?
Schreibe einen Kommentar