我正在尝试在我的Angular Js应用程序中使用angular-ui/ui-calendar(FullCalendar)。我有选择框,其中列出了一些项目,根据所选项目,我的事件源 url 需要更新。所以在控制器中,我确实更新了它,但日历仍然没有使用更新的 URL,而且一旦源更改,我还需要日历刷新/渲染。根据此链接需要一些删除和添加事件源。我是Jquery和Angular的新手,所以如果有人能解释如何在angular js中做到这一点,我将不胜感激。
我的控制器的一些位,我设置了URL源,但我认为这不是正确的方法,而且它也无法正常工作。
$scope.locationId = 0
$scope.url = "./api/ev/event/calendarByLocationId?locationId=" + $scope.locationId;
$scope.eventSource = {
url : $scope.url
};
$scope.setURL = function(locationId) {
$scope.locationId = locationId
$scope.url = "./api/ev/event/calendarByLocationId?locationId=" + $scope.locationId;
$scope.eventSource = {
url : $scope.url
};
$scope.eventSources = [ $scope.eventSource ];
}
不使用 refetchEvents,下面的代码对我有用。 添加新的事件源后,日历会自动从新来源提取新数据。
// This function is called to change the event source. When
// ever user selects some source in the UI
$scope.setEventSource = function(locationId) {
// remove the event source.
uiCalendarConfig.calendars['myCalendar'].fullCalendar('removeEventSource', $scope.eventSource);
// Create the new event source url
$scope.eventSource = {url : "./api/ev/event/calendarByLocationId?locationId=" + locationId};
// add the new event source.
uiCalendarConfig.calendars['myCalendar'].fullCalendar('addEventSource', $scope.eventSource);
}
我也在研究添加和删除事件源。似乎有问题。
但作为暂时的,我有一个 REST 网址。更新后,数据将更新。到那时,我使程序通过触发此内容来刷新同一 url 上的事件。这使 url 能够刷新并再次从数据库中抓取。
$scope.myCalendar.fullCalendar( 'refetchEvents' );
您的 HTML 代码应如下所示:
<div class="calendar" ng-model="eventSources" calendar="myCalendar" config="uiConfig.calendar" ui-calendar="uiConfig.calendar"></div>
希望这有帮助。