2015-10-29 74 views
1

是否有可能像圖片鏈接一樣從頭開始創建每週視圖 - 使用下面的Json結構?FullCalendar獨特的自定義周視圖

var nestedEvents = { 
    "ABC": [ 
     { 
      title: 'Test-1', 
      startDate: moment, 
      endDate: moment, 
      "allDay": true 
     },{ 
      title: 'Test-2', 
      startTime: moment, 
      endTime: moment, 
      "allDay": true 
     } 
    ], 
    "DEF": [ 
     { 
      title: 'Test-3', 
      startTime: moment, 
      endTime: moment, 
      "allDay": true 
     } 
    ] 
}; 

enter image description here

+0

所以基本上是沒有做行使用JSON結構分組合法的方式嗎?有點像在網格中,但更簡單http://ui-grid.info/docs/#/tutorial/209_grouping。 – user2994871

回答

0

你可以用的格式功能的幫助下momentjs

moment(startDate).format('w') //returns the weeknumber (from 1 to 53) 
moment(startDate).format('d') //returns the day of the week (from 0 to 6) 

首先,你必須創建一個對象,你可以存儲一週訂購您的活動做到這一點。

然後,你將不得不遍歷您的活動和使用事件的對應星期和日期索引每個事件推到這個對象:

for(var i=0; i<events.length; i++){ 
    var weekIndex = moment(startDate).format('w')-1; 
    var dayIndex = moment(startDate).format('d'); 

    calendar.weeks[weekIndex].days[dayIndex].events.push(events[i]); 
} 

結果(一年)將不得不看的東西像這樣:

var calendar = { 

"weeks": [ 
    { 
    "weekNumber": 0, 
    "days": [ 
     { 
      "dayNumber": 0, 
      "events": [ 
       { 
       "title": "Test-1", 
       "startDate": moment, 
       "endDate": moment 
       "allDay": true 
       } 
      ] 
     }, 
     { 
      "dayNumber": 1, 
      "events": [ 
       { 
       "eventNumber": 0, 
       "title": "Test-2", 
       "startDate": moment, 
       "endDate": moment, 
       "allDay": true 
       }, 
       { 
       "eventNumber": 1 
       }, 
       {} 
      ] 
     }, 
     { 
      "dayNumber": 2 
     } 
    ] 
    }, 
    { 
    "weekNumber": 1 
    }, 
    { 
    "weekNumber": 2 
    }, 
    {} 
] 
} 
+0

謝謝!這會給我一個從嵌套結構收集事件的結構。但是,fullcalendar JavaScript插件/庫(我正在使用)旨在採用扁平結構。我的問題是與多個標題(如圖片)呈現此嵌套結構。 https://github.com/fullcalendar/fullcalendar/blob/master/dist/fullcalendar.js。它看起來像是第一個骨架,然後基於日期插入事件。看起來像'renderHtml'和'headerInto'方法正在生成骨架。這種嵌套結構似乎是完全不同的範例。 – user2994871