2016-06-30 14 views
0

私は、外部にドラッグされたイベントでFullCalendarを使用しています。要するに、私のビジネスケースに基づいて、同じイベントを2回保存することはできません。私はモデルでこれを処理していますので、1日目にAを落とすと、それは完全に保存されます。モデルはレコードIDを返しますので、それに応じてイベントを更新します。Fullcalendar - 保存されていないイベントを削除できません

DBでイベントを複製しようとすると、Modelはそれを許可せず、nil ID(正しい)を返します。だから、この時点で、私は最後にドロップされたイベントを削除したいと思います。

何らかの理由でこれができません。 DBの既存のイベントを削除しようとすると完璧にはうまくいかないが、最後のイベントでこれを実行したいときは、それは機能していない($('#calendar').fullCalendar('updateEvent', event);)。

私は、保存されていないイベントに-1または999のIDを設定する場所を試してみて、それを削除しようとしましたが、それは成功しませんでした。また、私はすべてのクライアントイベントを取得し、最後の1つをピックアップしようとしました(私はコンソールIDをチェックし、それは完璧でしたが、内部的に取得すると、それは未定義でした)ので、これもどちらもうまくいきませんでした。

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メソッドを呼び出すことを避けました。そのため、dropメソッドの中からすべてを処理しています。したがって、ユーザーがイベントをドロップすると、まずすべてをチェックし、問題がなければrenderEventに進みます。

"正しい" IDでイベントを作成することで、削除が正常に機能していないという事実に関連する問題に直面していません。

他人に役立つことを願っています!

0

$("#calendar").fullCalendar("removeEvents", event._id);を試してください。 _idは、イベントに自動的に割り当てられたIDがある場合、またはデータベースIDが割り当てられる前にイベントに使用されるものです。

関連する問題