3

fullcalendar v2 リソース カレンダーを実装しました。私が修正できないのは、日に基づいて動的なminTimemaxTimeを設定することです。毎日、仕事のタイミングが異なります。

月曜日 10:00~14:00

火曜日 16:00~24:00 ...

この方法でカレンダーを初期化しました:

$('#calendar').fullCalendar({
header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,resourceDay'
},
defaultView: 'resourceDay',
titleFormat: {'day':'dddd, MMMM D'},
minTime: "08:00",
maxTime: "20:00",
scrollTime:  moment().format('H:m'),
eventLimit: true, // allow "more" link when too many events
resources:[
    resource1,resource2
    ],
slotDuration: '00:15:00',
allDaySlot: false,
lazyFetching: false,
droppable: true,
defaultTimedEventDuration: '00:30:00',
selectable: true,
selectHelper: true,
unselectAuto: 'true',
timeFormat: {'agenda':'hh:mm A','':'hh:mm A'},

// Calender Method-1: AJAX events will loaded from this code
events:function(start, end, timezone,callback) {

$.ajax({
        url: "http://www.domainn.com/dashboard/index",
        dataType: 'json',
        type:'POST',
        // async: false, //blocks window close
        data: {
            start: start.unix(),
            end: end.unix(),
            viewtype: $('#calendar').fullCalendar('getView').name,
        },
        success:function(response){
          var calendarOptions = $('#calendar').fullCalendar('getView').calendar.options;
          // console.log(calendarOptions);
         calendarOptions.minTime = response.timings.start;
          calendarOptions.maxTime = response.timings.end;

          $('#calendar').fullCalendar('destroy');

          $("#calendar").fullCalendar(
                $.extend(calendarOptions, {
                    events:response.resources
                })
          );
                      
          
        }
    });
},
eventRender: function (event, element) {
  // code here
},
// other events follows.....
});

このajax呼び出しから、その日に基づいて、その特定の日の動的な作業タイミングを取得し、それを設定しようとしています

response.timings.start
response.timings.end

しかし、これらのオプションを使用してから別の日に変更/goingToしても、イベントは取得されません! 基本的に同じ関数を無限ループで呼び出し続けます。

多くのオプションを試しましたが、うまくいきませんでした。どんなヘルプ/ガイドも大歓迎です。ありがとう。

4

3 に答える 3

2

バージョン 2.9.0 以降、FullCalendar はオプションの動的設定をサポートしています。

次のようなことができるはずです。

$('#calendar').fullCalendar('option', 'minTime', response.timings.start);

私は他の SO の投稿で、人々があなたのやり方でオプションを設定しようとしたのを見てきました。

この機能を要求するGitHubの問題。

この機能を実装したGitHubの問題。

于 2016-07-22T14:17:16.527 に答える