Angularjs 以Laravel为后端刷新角度日历UI(Fullcalendar)中的事件

Angularjs 以Laravel为后端刷新角度日历UI(Fullcalendar)中的事件,angularjs,laravel,fullcalendar,angular-ui,Angularjs,Laravel,Fullcalendar,Angular Ui,我正在尝试制作一个自动刷新日历。我使用的是日历用户界面,我用这种方式从后端获取数据 /**Calendar Config***/ //config object $scope.uiConfig = { calendar:{ height: 500, width: 800,

我正在尝试制作一个自动刷新日历。我使用的是日历用户界面,我用这种方式从后端获取数据

  /**Calendar Config***/
      //config object
                $scope.uiConfig = {
                    calendar:{
                        height: 500,
                        width: 800,
                        editable: false,
                        //First Hour
                        firstHour: 8,
                        //Devide by half hour
                        slotMinutes: 30,
                        //default duration 01:30
                        defaultEventMinutes: 90,
                        axisFormat: 'HH:mm',
                        timeFormat: {
                            agenda: 'H:mm{ - H:mm}'
                        },
                    header:{
                        //Buttons
                        center: 'month agendaWeek agendaDay',
                        left: 'title',
                        right: 'today prev,next'
              },
              defaultView: 'agendaWeek'
            }
          };

      //Get planings By Group
            $scope.getPlaningsByGroup = function(groupId){
                planing.getPlaningsByGroup(groupId)
                    .success(function(data){
                        //Populate the event object
                        $scope.populatePlan(data);
                    });
                }

      //Populating the plan
      $scope.events = [];
      $scope.populatePlan = function(plans){
        plans.forEach(function(plan){
          start_time = moment.duration(plan.start_time);;
          duration = moment.duration(plan.course.duration);
          start_course = moment()
                          .day(plan.day)
                          .hour(start_time.hours())
                          .minutes(start_time.minutes())
                          .seconds(start_time.seconds())
                          .format("YYYY-MM-DDTHH:mm:ss");



          end_time = start_time.add(duration);
          end_course = moment()
                          .day(plan.day)
                          .hour(end_time.hours())
                          .minutes(end_time.minutes())
                          .seconds(end_time.seconds())
                          .format("YYYY-MM-DDTHH:mm:ss");

          console.log(end_course);

          $scope.events.push(
                  {
                    id:plan.id,
                    title:plan.course.title,
                    start:start_course,
                    end :end_course,
                    allDay:false,
                  }
            );


        });
      }
      //Event Source object
      $scope.eventSources = [$scope.events];
我不知道这是不是最简单的方法,但我还是个婴儿,所以请原谅这个犯罪现场。我做了一些研究,并决定使用$interval provider刷新事件。以下是我在尝试后面临的问题: 尝试1:
//刷新事件
var refresh=function(){
$(“#日历”).fullCalendar('rerendervents');
控制台日志(“刷新”);
}
$interval(刷新,3000);
刷新()

基本上这没什么作用 尝试2:
//刷新事件
var refresh=function(){
$scope.events.length=0;
$scope.getPlanningsByGroup($scope.student.group\u id);
控制台日志(“刷新”);
}
$interval(刷新,3000);
刷新()

这是成功的,但我知道这是对后端的自杀企图。 我的问题是如何解决这种疯狂。
谢谢

您可以使用两种策略使日历与服务器保持同步,而无需发出大量请求

第一个,叫做。简单地说,客户机发出请求,您的服务器将使其保持活动状态,直到新事件可用

第二个,叫做。这是一个全双工通信信道,您可以在其中双向发送数据


我不使用PHP,所以我不知道laravel是否支持长轮询或websocket,但我认为这并不难创建。

您想刷新现有客户端事件还是保持日历与服务器同步?我想保持它与服务器同步谢谢,我真的很感激。我认为现在的解决办法是去学习其中一种方法。