2014-10-08 106 views
0

我有一个Fullcalendar奇怪的问题。日历未完全呈现。只有标题首先被渲染,我必须点击任何标题按钮才能使日历渲染日期和事件。Fullcalendar没有渲染天

HTML +剃刀:

<div class="row"> 
<div class="col-xs-12 col-md-3"> 
    @Html.DropDownListFor(m => m.User, @Model.UsersDropdown, new { id = "calendar_uid", @class = "form-control" }) 
</div> 
</div> 
<div class="row"> 
<div class="col-xs-12"> 
    <div id="calendar" data-lang="@Request.UserLanguages[0]"></div> 
</div> 
</div> 

JS:

$("#calendar").fullCalendar({ 
    header: { 
     left: '', 
     center: 'title', 
     right: 'today prev,next' 
    }, 
    buttonIcons: { 
     prev: 'left-single-arrow', 
     next: 'right-single-arrow', 
     prevYear: 'left-double-arrow', 
     nextYear: 'right-double-arrow' 
    }, 
    events: { 
     url: SITE_ROOT + '/Calendar/Feed', 
     type: 'POST', 
     data: { 
      uid: $('#calendar_uid').val() 
     } 
    }, 


}); 

$("#calendar_uid").change(function() { 
    $("#calendar").fullCalendar('removeEventSource', SITE_ROOT + '/Calendar/Feed'); 
    var newSource = { 
     url: SITE_ROOT + '/Calendar/Feed', 
     type: 'POST', 
     data: { 
      uid: this.value 
     } 
    }; 
    $("#calendar").fullCalendar('addEventSource', newSource); 

}); 

为了使事情变得陌生如果我叫$("#calendar").fullCalendar('render');从Firebug的控制台压延完全呈现。但是,如果我从我的脚本初始化后调用它没有任何反应。我还查看了Firebug的网络标签。第一次渲染日历时,不会向服务器发送任何请求。当我点击任何标题按钮时,请求被发送。之后一切正常。

我也尝试复制this小提琴,看看它是否在本地工作。我仍然有同样的问题。我需要点击任何按钮才能使日历完全呈现。

最后但并非最不重要的我的脚本包括(在我的页面的底部):

<script src="/C5.WebApp/Scripts/jquery-1.11.1.js"></script> 
<script src="/C5.WebApp/Scripts/bootstrap.js"></script> 
<script src="/C5.WebApp/Scripts/jquery.hideseek.js"></script> 
<script src="/C5.WebApp/Scripts/moment-with-locales.js"></script> 
<script src="/C5.WebApp/Scripts/fullcalendar.js"></script> 


<script> 
    moment().format(); 
</script> 
<script src="/C5.WebApp/Scripts/app_calendar.js"></script> 
<script src="/C5.WebApp/Scripts/app_contacts.js"></script> 
<script src="/C5.WebApp/Scripts/app_newPhone.js"></script> 
<script src="/C5.WebApp/Scripts/app_newEmail.js"></script> 
<script src="/C5.WebApp/Scripts/app_newAppointment.js"></script> 
<script src="/C5.WebApp/Scripts/app_newActivity.js"></script> 
<script src="/C5.WebApp/Scripts/application.js"></script>  
+0

你试过设置defaultView吗? – 2014-10-08 16:17:41

+0

@RichardHermanson是的相同结果 – 2014-10-08 19:19:35

+0

只是一个想法,如果你添加一个视图到标题(作为一个按钮)会发生什么?如果没有jsfiddle或其他东西,很难提供帮助 – 2014-10-08 19:44:55

回答

0

一次又一次地阅读文档后,我找到了this

请注意,此示例调用渲染每当显示任何选项卡时,不仅仅是日历所在的选项卡。这是好的,因为FullCalendar足够聪明,只能渲染用户可见的日历。

问题是我的日历最初是隐藏的,我希望当我通过javascript删除hidden类它被渲染。