Tôi đang sử dụng plugin jQuery full calendar kết hợp với backbone.js và gặp sự cố khi không hiển thị đúng khi tải lần đầu tiên.toàn bộ lịch không hiển thị khi được tải (có đường trục)
Đây là làm cho chức năng của tôi cho xem xương sống chứa lịch:
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;
}
Bạn có thể thấy tôi có một thời gian chờ bộ cho 500 ms bao gồm. Khi tôi trì hoãn 500 ms đó, và sau đó thay đổi dạng xem thành agendaWeek, nó sẽ hiển thị. Tuy nhiên, nếu tôi không trì hoãn, lịch sẽ không hiển thị. Không có lỗi nào được in trong cả hai trường hợp.
Tôi đang mất điều gì cần thử ở đây hoặc những gì có thể xảy ra. Có một cuộc gọi lại để tạo lịch mà tôi đang thiếu ở đâu đó trong tài liệu không?
Cảm ơn
CHỈNH SỬA: có thể là .html() funciton chưa hoàn thành và gây ra sự cố?
Có phải Fullcalendar có thể quan tâm đến kích thước hoặc vị trí của phần tử của nó không? Tôi đã gặp các vấn đề tương tự với Google Maps và mẹo 'setTimeout (..., 0)' đã làm việc cho tôi. –
Tôi khá chắc chắn vấn đề là những gì @muistooshort ám chỉ đến. Tôi đã sử dụng plugin lịch đầy đủ và nó quan tâm đến "kích thước và vị trí" của phần tử của nó. – Jack
Vấn đề vẫn còn nếu bạn mã cứng chiều cao? Điều gì this.serialize() trả về? –