在 Angular JS 中渲染后,角度 ui/ui-calendar 更改事件源



我正在尝试在我的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>

希望这有帮助。

相关内容

  • 没有找到相关文章