Angular-UI-Calendar后期绑定?

时间:2014-01-27 21:35:26

标签: javascript angularjs calendar fullcalendar angular-ui

我正在使用我非常喜欢的Angular-UI日历​​。但是,我遇到了后期绑定的问题。

指令是这样的:

<div ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="myCalendar" class="cal-self panel panel-custom">

eventSources来自实质性的服务器端API请求。在日历已呈现到页面后,请求始终完成。

有任何关于让它能够迟到的想法吗?

1 个答案:

答案 0 :(得分:2)

我通过以下方式取得了成功:我将在ui-calendar的repo上给出当前源文件的行号。致电getFullCalendarConfig后执行:~line-203 - 您需要注入$timeout

var viewChanged = false,
    oldViewDisplay = fullCalendarConfig.viewDisplay || fullCalendarConfig.viewRender;
delete fullCalendarConfig.viewDisplay;
fullCalendarConfig.viewRender = function(view){
    if(oldViewDisplay)oldViewDisplay(view);
    viewChanged = true;
    $timeout(function(){viewChanged = false});
};  

然后在传递给eventWatcher.subscribe(scope...的函数内部执行:〜第255行

if (!viewChanged)
    scope.calendar.fullCalendar('refetchEvents');           
if (sourcesChanged === true) {
    // Rerender the whole thing if a new event source was added/removed
    scope.calendar.fullCalendar('rerenderEvents');
    sourcesChanged = false;
    // prevent incremental updates in this case
    return false;
}

<强>更新

所以我做了plunker。 它基本上有一个简化/受损的ui-calendar指令(v0.1.2 | 3时代)。然而,可以说(恕我直言)这个指令“过度流浪”,因为fullcalendar功能很好地与它自己的设备(很多并且经过验证)。