2017-01-02 2 views
1

Это мой календарь объектЗагрузка данных динамически при изменении даты

$scope.uiConfig = { 
      calendar: { 
       height: 450, 
       editable: false, 
       header: { 
        left: 'title', 
        center: '', 
        right: 'today prev,next' 
       }, 
       eventClick: $scope.onEventClick, 
       eventDrop: $scope.alertOnDrop, 
       eventResize: $scope.alertOnResize, 
       eventRender: $scope.eventRender, 
       dayClick: $scope.onDayClick, 
       viewRender: $scope.getData 
      } 
     }; 

и

 $scope.getData = function(view, element){ 
      $scope.intervalStartDate = new Date(view.start); 
      $scope.intervalEndDate = new Date(view.end); 

     $scope.managedEvents = Event.getFittingsForDateInterval({ 
      intervalStartDate : convertDate($scope.intervalStartDate), 
      intervalEndDate : convertDate($scope.intervalEndDate) 
     }); 

$scope.managedEvents.$promise.then(function(data){ 
    $scope.uiConfig.calendar.events = data; 
}); 

    } 

если удалить

$scope.uiConfig.calendar.events = data; 

нет данных заполняемых и если я включить этот это обновление и загрузка данных текущего месяца

в первый раз загружает данные за январьский месяц, каждый раз, когда я нажимаю значок следующего месяца, он запрашивает данные за февральский месяц, и снова календарь сбрасывается на текущий месяц (он снова вызывает $ scope.getData)

data = [{start : some_date, end : some_date, title : event_name},{start : some_date, end : some_date, title : event_name},{start : some_date, end : some_date, title : event_name},{start : some_date, end : some_date, title : event_name},{start : some_date, end : some_date, title : event_name}]; 

Я хочу получить данные только для текущего вида, а не для всех одновременно. любая помощь будет оценена.

+0

Можете ли вы предоставить скрипку одного и того же, так что ошибка может быть отслежены легко – Vish

+0

я обновил вопрос @Vish –

+0

Хорошо, так позвольте мне подтвердить, если я правильно понял, вы хотите, чтобы данные быть извлечена для тока view (Это может быть день, неделя или месяц). Как и когда вы нажимаете на следующую кнопку для любого представления, которое хотите получить данные этого вида, это так, как вы хотите? – Vish

ответ

1

Контроллер.js Код:.

$scope.getEvents = function(){ 
      var obj = {}; 
      $scope.events = []; 
      obj.startDate = new Date($scope.myView.intervalStart).getTime(); 
      obj.endDate = new Date($scope.myView.intervalEnd).getTime(); 

     if($scope.myView.name == "month"){ 
      obj.endDate = obj.endDate - 19801000; 
     } 
     //Give a call to database from here, in which obj contains 
     // start and end of the view 

     var getEventsPromise = masterCalendarAPI.getEvents(obj); 
     getEventsPromise.then(function (response) { 
      if(response.statusCode == 200){ 
       //Assign $scope.event the list object retrieved from database 
      } 
     }, 
     function (error) { 
      console.log(error); 
     }); 
    } 

//Remember this method will be called on each view change with all details in 'view' object 
    $scope.renderView = function (view) { 
      $scope.myView = view; 
      $scope.getEvents(); 
     } 

    $scope.uiConfig = { 
       calendar: { 
        height: 500, 
        editable: false, 
        header: { 
         left: 'prev,next title', 
         center: '', 
         right: 'month,agendaWeek,agendaDay' 
        }, 
        eventLimit: true, 
        views: { 
         month: { 
          eventLimit:3 
         } 
         }, 
        columnFormat:'dddd', 
        timezone: 'local', 
        timeFormat: 'hh:mm a', 
        titleFormat:'MMMM D, YYYY', 
        slotDuration:'00:30:00', 
        eventRender:$scope.eventRender, 
        eventClick: $scope.eventClicked, 
        dayClick: $scope.dayClick, 
        eventDrop: $scope.alertOnDrop, 
        eventResize: $scope.alertOnResize, 
        viewRender: $scope.renderView 
       } 
      } ; 
//event sources array 
    $scope.eventSources = [$scope.events]; 
+0

// Назначьте $ scope.event объект списка, полученный из база данных $ scope.managedEvents = данные данных // возвращаемых из базы данных но не загружается в календарь –

+0

Plz поделиться своим решением образца –

+0

Покажите мне ваш объект «данные», которые вы извлекаете из базы данных – Vish

Смежные вопросы