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