Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加或删除事件时,uiCalendar不刷新_Javascript_Angularjs_Ui Calendar - Fatal编程技术网

Javascript 添加或删除事件时,uiCalendar不刷新

Javascript 添加或删除事件时,uiCalendar不刷新,javascript,angularjs,ui-calendar,Javascript,Angularjs,Ui Calendar,更改事件源中的元素后,无法更新uiCalendar 该日历在模板中定义为: <div ui-calendar="uiConfig.calendar" class="span8 calendar" ng-model="EC.calendarEvents" calendar="eventsCalendar"></div> 我还尝试删除并重新添加源: uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('remo

更改事件源中的元素后,无法更新uiCalendar

该日历在模板中定义为:

<div ui-calendar="uiConfig.calendar" class="span8 calendar" ng-model="EC.calendarEvents" calendar="eventsCalendar"></div>
我还尝试删除并重新添加源:

uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('removeEvents');
uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('addEventSource', $scope.EC.calendarEvents);
但这只会导致控制台中显示以下错误:

TypeError: Cannot read property 'hasTime' of undefined
错误发生在第12272行的
normalizeeventimes
函数的fullcalendar.js中

错误行是:

eventProps.allDay = !(eventProps.start.hasTime() || (eventProps.end && eventProps.end.hasTime()));
在这篇文章中,他们建议保持对数组的相同引用,并将事件推入和移出:


我也试过了,但没什么不同。

问题是ui calendar希望接收其事件的格式不一致

当控制器加载并填充EC.calendarEvents时,ui calendar将接收一个数组。因此,任务如下所示:

$scope.EC.calendarEvents = [createCalendarEventsFromCoreEvents(coreEvents)];
$scope.EC.calendarEvents = createCalendarEventsFromCoreEvents(filterEvents());
uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('removeEvents');
uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('addEventSource', $scope.EC.calendarEvents);
但是,每当我想要更改EC.calendarEvents时,它必须是一个数组,而不是数组数组

因此,
EC.calendarEvents
的后续更新如下所示:

$scope.EC.calendarEvents = [createCalendarEventsFromCoreEvents(coreEvents)];
$scope.EC.calendarEvents = createCalendarEventsFromCoreEvents(filterEvents());
uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('removeEvents');
uiCalendarConfig.calendars['eventsCalendar'].fullCalendar('addEventSource', $scope.EC.calendarEvents);
请注意,
createCalendarEventsFromCoreEvents
周围缺少括号
[]