2016-12-01 5 views
0

У меня есть контроллер с именем CalendarDemoCtrl, где у меня есть конфиг для fullcalendar, как показано ниже.angularjs fullcalendar eventclick scope

$scope.uiConfig = { 
     calendar: { 
      height: 600, 
      editable: false, 
      locale:'es', 
      //navLinks: true, // can click day/week names to navigate views 
      businessHours: true, // display business hours 
      allDaySlot: false, 
      slotLabelFormat : 'h:mm a', 
      timeFormat: 'h:mm a', 
      navLinks: true, 
      navLinkDayClick: function(date, jsEvent) { 
       cc['mycalendar'].fullCalendar('changeView','agendaDay'); 
       cc['mycalendar'].fullCalendar('gotoDate',date); 
       $scope.currentDate = cc['mycalendar'].fullCalendar("getView").title; 
      }, 

      defaultView: 'agendaDay', 
      slotDuration: '00:15:00', 
      header: false, // remove default toolbar 
      //editable: true, 
      eventRender: $scope.eventRender, 
      eventClick : $scope.onEventClick 
      //dayClick : $scope.onEventClick 
     } 
    } 

и в том же контроллере я определил $ scope.onEventClick и $ scope.addEvent.

$scope.addEvent = function() { 

     $rootScope.oldFormData = $.extend(true, {}, $scope.formData); 

     $scope.entroModal = true; 
     $scope.modalOpen('new'); 
    }; 
$scope.onEventClick = function(index) { 


     $scope.formData = $.extend(true, {}, index.cita); 
     var date_inicio = new Date(index.cita.inicio) ; 
     $scope.formData.inicio = date_inicio.getDate() + "/" + (date_inicio.getMonth() + 1) + "/"+ date_inicio.getFullYear()+ " " + date_inicio.getHours()+ ":" + (date_inicio.getMinutes()<10?'0':'') + date_inicio.getMinutes(); 
     var date_fin = new Date(index.cita.fin) ; 
     $scope.formData.fin = date_fin.getDate() + "/" + (date_fin.getMonth() + 1) + "/"+ date_fin.getFullYear()+ " " + date_fin.getHours()+ ":" + (date_fin.getMinutes()<10?'0':'') + date_fin.getMinutes(); 
     $.extend($scope.formData , $rootScope.oldFormData); 
     $scope.modalOpen('edit'); 
    }; 

Первый один используется с кнопкой, когда пользователь хочет добавить событие и второй один, чтобы изменить событие в календаре. Однако при добавлении события область выходит за пределы области действия ниже, чем eventclick, поэтому, когда я добавляю события, которые она отображает в календаре, когда я нажимаю и редактирую событие, событие не изменяется в календаре, поскольку это область выше.

  1. $ rootscope: идентификатор 1

  2. $ объем: идентификатор 10 (это eventclick работы)

  3. ребенок $ Сфера: идентификатор 11 (это addevent работы)

Это полный беспорядок, и я путаюсь, как это произошло, и как я могу иметь оба события в пределах одной области? пожалуйста, сообщите спасибо!

ответ

1

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

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