Angularjs eventSources模型中的更改不会反映在fullCalendar中

Angularjs eventSources模型中的更改不会反映在fullCalendar中,angularjs,fullcalendar,restangular,Angularjs,Fullcalendar,Restangular,我使用angularjs、restangular和angular ui/ui日历。 我想在下个月/上个月视图更改时从RESTAPI加载事件,等等。 我正在尝试从viewRender回调中执行此操作。 在回调内部,从API检索数据并将其应用于eventSources模型。但是,模型中的更改不会应用到日历中 请有人指出是什么错了,或者我遗漏了什么 我尝试了fullCalendar“render”、rerenderEvents、refetchEvents等。该日历一直显示控制器中设置的初始事件 <

我使用angularjs、restangular和angular ui/ui日历。 我想在下个月/上个月视图更改时从RESTAPI加载事件,等等。 我正在尝试从viewRender回调中执行此操作。 在回调内部,从API检索数据并将其应用于eventSources模型。但是,模型中的更改不会应用到日历中

请有人指出是什么错了,或者我遗漏了什么

我尝试了fullCalendar“render”、rerenderEvents、refetchEvents等。该日历一直显示控制器中设置的初始事件

<div ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="visitCal"></div>


myControllers.controller('CalenderCtrl',['$scope','uiCalendarConfig','Restangular',function($scope,uiCalendarConfig,Restangular){

    var fetchEvents=function(view,element){
        var cal=uiCalendarConfig.calendars.visitCal;

        var visits=Restangular.all('visits');
        visits.getList({start:view.start.format(),end:view.end.format()}).
            then(function(visits) {
                $scope.eventSources.events=[];
                for(var i= 0;i < visits.length;i++){
                    $scope.eventSources.events.push(visits[i]);
                }
                cal.fullCalendar('render');
            }
        );
    }; // end fetchEvents function
    $scope.uiConfig = {
        calendar:{
            viewRender:fetchEvents,
            height: 450,
            editable: true,
            header:{
                left: 'month basicWeek basicDay agendaWeek agendaDay',
                center: 'title',
                right: 'today prev,next'
            }
        }
    };
    //initial test events
    $scope.eventSources={events:[
        {title:'ev1',
            start:'2015-01-30',
            className:'testClass'},.......
    ]};

}]);

不在viewRender中获取事件

而是使用eventSources作为事件源。两种方式:或

回调方法

JSON提要方法

如果该脚本采用日期范围,则返回事件的JSON数组。有关具有数据选项的更高级版本,请参阅


如果数据在添加之前需要修改,请在viewRender中使用“不获取事件”

而是使用eventSources作为事件源。两种方式:或

回调方法

JSON提要方法

如果该脚本采用日期范围,则返回事件的JSON数组。有关具有数据选项的更高级版本,请参阅


如果数据在添加之前需要修改,请使用

,以防有人卡在这里

@slicedtoad共享的方法是正确的,但是在angularjs中,使用事件回调函数会在calendar.js中产生错误

这就是我现在正在做的

<div ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="visitCal"></div>

var fetchEvents=function(start, end, timezone, callback){
        var cal=uiCalendarConfig.calendars.visitCal;
        var visits=Restangular.all('visits');
                    visits.getList({start:start.format(),end:end.format()}).then(function(visits) {
            $scope.events.length=0;
            for(var i= 0;i < visits.length;i++){
                var event={
                    start: visits[i].start,
                    title:visits[i].title,
                };
                $scope.events.push(event);
            }
            //callback(new_events_array);->this gives error though it works
        });
    };

$scope.uiConfig = {
        calendar:{
            eventClick:eventInfo,
            events:fetchEvents,
            height: 450,
            editable: true,
            header:{....}
        }
    };
$scope.events=[];
$scope.eventSources=[$scope.events];

以防有人被困在这里

@slicedtoad共享的方法是正确的,但是在angularjs中,使用事件回调函数会在calendar.js中产生错误

这就是我现在正在做的

<div ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="visitCal"></div>

var fetchEvents=function(start, end, timezone, callback){
        var cal=uiCalendarConfig.calendars.visitCal;
        var visits=Restangular.all('visits');
                    visits.getList({start:start.format(),end:end.format()}).then(function(visits) {
            $scope.events.length=0;
            for(var i= 0;i < visits.length;i++){
                var event={
                    start: visits[i].start,
                    title:visits[i].title,
                };
                $scope.events.push(event);
            }
            //callback(new_events_array);->this gives error though it works
        });
    };

$scope.uiConfig = {
        calendar:{
            eventClick:eventInfo,
            events:fetchEvents,
            height: 450,
            editable: true,
            header:{....}
        }
    };
$scope.events=[];
$scope.eventSources=[$scope.events];
<div ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="visitCal"></div>

var fetchEvents=function(start, end, timezone, callback){
        var cal=uiCalendarConfig.calendars.visitCal;
        var visits=Restangular.all('visits');
                    visits.getList({start:start.format(),end:end.format()}).then(function(visits) {
            $scope.events.length=0;
            for(var i= 0;i < visits.length;i++){
                var event={
                    start: visits[i].start,
                    title:visits[i].title,
                };
                $scope.events.push(event);
            }
            //callback(new_events_array);->this gives error though it works
        });
    };

$scope.uiConfig = {
        calendar:{
            eventClick:eventInfo,
            events:fetchEvents,
            height: 450,
            editable: true,
            header:{....}
        }
    };
$scope.events=[];
$scope.eventSources=[$scope.events];