2015-05-30 61 views
2

我正在使用Fullcalendar和backlog區域,最終用戶可以在其中查看並從日曆中拖放&拖放事件。用戶還可以根據位置,優先級和負責人(以及更多...)過濾他想看到的事件:此更新積壓和日曆。這很好,但迄今爲止積壓和日曆通過2個不同的ajax調用進行更新。因此,當事件出現在這兩個區域並且代碼更復雜時,會有延遲,因爲我必須管理兩個Json流(在客戶端和服務器端),儘管它們使用相同的參數和相同的數據庫和表,沒有提到第二個MySQL連接成本:-)。我想知道是否可以通過Ajax調用接收兩個Json的一個數組,並使用一個來呈現日曆上的事件,並使用另一個來刷新積壓列表。僅使用一個json源渲染fullcalendar和一個backlog

這裏是我使用的代碼:

  eventSources: [ 
       { 
        url: './ajax/_schedule_json.php', 
        type: 'POST', 
        data: function() { 
         return { 
          location_id: $('#location_id').val(), 
          priority_id: $('#priority_id').val(), 
          responsible_id: $('#responsible_id').val(), 
          ... 
         }; 
        }, 
        success: function(data) { }, 
        fail: function(data) { } 
       } 
      ], 

謝謝!

回答

0

其實這很簡單。假設你在服務器端腳本生成兩個JSON(事件和積壓)的數組,你只需要打開文件fullcalendar.js和搜索:

   success: function(events) { 
        events = events || []; 
        var res = applyAll(success, this, arguments); 
        if ($.isArray(res)) { 
         events = res; 
        } 
        callback(events); 
       } 

修改第一和第二線如下:

   success: function(json) { // Modified 
        events = json.events || []; // Modified 
        var res = applyAll(success, this, arguments); 
        if ($.isArray(res)) { 
         events = res; 
        } 
        callback(events); 
       } 

然後你就可以在你的主Javascript文件,第二JSON:

  eventSources: [ 
       { 
        ... 
        success: function(data) { 
         $.each(data.backlog, function (i, item) { 
          // do whatever you want with the backlog 
         }); 
        } 
       } 
      ],