2016-06-30 2 views
0

Я использую FullCalendar с событиями, перетаскиваемыми извне. Дело в том, что, основываясь на моем бизнес-случае, я не могу сохранить одно и то же событие дважды. Я обрабатываю это на модели, поэтому, когда вы отбрасываете четный A в день 1, он будет успешно сохранен. Модель вернет идентификатор записи, и я обновлю соответствующее событие.Fullcalendar - Невозможно удалить незавершенные события

Всякий раз, когда вы пытаетесь дублировать событие в БД, Model не позволит этого, и он вернет идентификатор nil (это верно). Итак, на этом этапе я хотел бы удалить последнее событие с удалением.

По какой-то причине это невозможно. При попытке удалить любой из существующих событий БД он отлично работает, но когда я хочу сделать это с последним событием, он не работает (через $('#calendar').fullCalendar('updateEvent', event);).

Некоторые из вещей, которые я пробовал, чтобы установить идентификатор в -1 или 999 на несохраненное событие, а затем попытался удалить его, но это не удалось. Кроме того, я попытался получить все клиентские события и выбрать последний (я проверил через консоль идентификатор, и это было прекрасно, но при его внутреннем получении оно было неопределенным), так что это не сработало.

eventReceive: function(event){ 
    $.ajax({ 
      url: "/menus", 
       type: "POST", 
       data: { menu: { 
         fecha: event.start.format(), 
         food_id: event.foodId 
       }}, 
       dataType: "JSON", 
       success: function(resp){ 
        event.id = resp.menuId; 
        if(event.id){ 
         $('#calendar').fullCalendar('updateEvent', event); 
        } 
        else{ 
         event.id = -1; 
         $('#calendar').fullCalendar('updateEvent', event); 
         $('#calendar').fullCalendar('removeEvents', -1); 
        } 
       } 
    });    
} 

Не могли бы вы помочь мне решить эту проблему?

Спасибо и приветствую.

Алехандро.

ответ

0

В настоящее время есть некоторые открытые проблемы, связанные с этим поведением, с которым я столкнулся, и возможности, которые мне нужно было реализовать (# 2928 & # 3252).

Как обходной путь, я избегал вызова метода eventReceive, избегая использования атрибутов data-event, поэтому я обрабатываю все из метода drop drop. Итак, как только пользователь удаляет событие, я сначала проверяю все, и, в случае, если все в порядке, я перехожу к renderEvent.

Создав события с «правильным» идентификатором, я больше не сталкиваюсь с проблемой, связанной с тем, что удаление не работает нормально.

Надеюсь, это поможет другим!

0

попытаться использовать $("#calendar").fullCalendar("removeEvents", event._id);. _id - это то, что используется для событий, когда у них есть идентификатор, автоматически назначенный им, или до того, как у них есть назначенный им идентификатор базы данных.

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