Источник событий пользовательского интерфейса AngularJS не обновлен - PullRequest
0 голосов
/ 04 февраля 2019

AngularJS UI-calendar не обновляет модель данных $ scope.eventSources после перетаскивания события.Мне нужно получить обновленную модель, и ничего не работает.

Я много чего перепробовал, ничего не работает..

Это мой код:

    /* config object */
        $scope.uiConfig = {
          calendar:{
            height: 600,
            editable: true,
            header:{
              left: 'month basicWeek basicDay agendaWeek agendaDay',
              center: 'title',
              right: 'today prev,next'
            },
            eventClick: $scope.alertEventOnClick,
            eventDrop: $scope.alertOnDrop,
            eventResize: $scope.alertOnResize,
            eventRender: function (event, element) {

                if (event.HighPriority == 1) {
                   event.className ='highPriority';
                }

            }

          }
        }; 

    /* load events source that contains custom events on the scope */
        $scope.events = agendaFactoryLocalStorage.getAgenda();

        $scope.eventSources = [$scope.events];

$scope.alertOnDrop = function(event, delta, revertFunc, jsEvent, ui, view){
   $scope.alertMessage = ('Event Droped to make dayDelta ' + delta);
    uiCalendarConfig.calendars.exampleCalendar.fullCalendar('removeEvents');
    uiCalendarConfig.calendars.myCalendar.fullCalendar('refetchEvents');
});

$scope.save_agenda = function(){
        agendaFactoryLocalStorage.updateAgenda($scope.eventSources);
}

$ scope.save_agenda все еще отправляет ту же модель данных, пока я перетаскиваю 1 событие, я действительно не знаю, что делать,застрял с 3 часов.$ scope.eventSources загружается правильно, но перетаскивание не меняет модель, обновляется только переменная 'event', но она уникальна, я пытался вставить ее в $ scope.eventSources без удачи

1 Ответ

0 голосов
/ 04 февраля 2019

Ну, я нашел что-то, кто, вероятно, будет работать, теперь он корректно обновляет $ scope.eventSources после перетаскивания события:

$scope.alertOnDrop = function(event, delta, revertFunc, jsEvent, ui, view){
                 $scope.alertMessage = ('Event Droped to make dayDelta ' + delta); 
                 $scope.eventSources[0][1].start = event.start.format();
    };

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

...