我在这里遇到了一个很大的问题,我尝试在使用同步点更改视图时加载事件。更改同步点效果很好,我还可以发送和接收信息。但日历仍然冻结,我必须更改几个月才能再次开始工作。然后我可以回到上个月。 我使用 AngularJS 来加载事件,并使用
$q
在请求之前加载数据:
$q(function(resolve, reject) {
resolve(beforeSendStatus());
}).then(function() {
EventService.get({
start: moment(start).format("DD-MM-YYYY"),
end: moment(end).format("DD-MM-YYYY"),
format: 'FC',
onlyMe: false
}).then(function(data) {
$('.status').find('i').removeClass("fa-spin fa-circle-o-notch").addClass('fa-check');
Calendar.fullCalendar('renderEvents', data.data);
eventLenghtCalc(view, 325);
}, function(error) {
$('.status').find('i').removeClass("fa-spin fa-circle-o-notch").addClass('fa-close').css({
'color': 'red'
});
toastr.error(error.data);
});
})
如果我用
$q
移除零件,效果很好。
你们中有人在 viewRender 回调中遇到过异步函数的问题吗?
谢谢,祝你有美好的一天!
ps。
beforeSendStatus()
功能仅更改微调器的图标。
您的日历对象是什么?是https://fullcalendar.io/吗?
如果将 jquery 代码与 Angular 混合使用,请小心;混合不 工作顺利。更好的方法是添加一个全局变量并使用 ng-class 来 更新您的通话。
我建议使用 Angular ui 组件,例如:http://angular-ui.github.io/ui-calendar/
首先,我相信您可以将 eventSources 用于多个偶数源。
如果您仍然想“手动”添加事件,请使用 addEventSource 函数。
对于加载程序,您还可以使用 fullCalendar 的 loading 回调。