0

オーケー、私は Adam Shaw の FullCalendar を使用しています。これは本当に素晴らしい機能です...そして、その機能を最大限に活用したいと思っています。Ok。私の問題は、ページに保存されている静的JSONデータである2つのイベントリソースとwindow.initial_task_items、jquery.ajax関数である別のイベントリソースを作成できないことです。

eventSources: [{
            //static events
            events: window.initial_task_items},
        { //ajax fetching
            events: function(start, end, callback) {
                if (window.task_calendar_firstrun == true) {
                    window.task_calendar_firstrun = false;
                }
                else if (window.task_calendar_firstrun == false) {
                    window.AjaxRegistry["gettasks"] = $.ajax({
                        url: window.cvars.userburl + "gettasks",
                        type: "GET",
                        dataType: 'json',
                        data: {
                            procdate: new XDate($('#task-full-calendar').fullCalendar('getDate')).toString("yyyy-MM-dd"),
                            user_hash: window.cvars.acuserhash
                        },
                        beforeSend: function() {

                        },
                        success: function(rsp) {
                            $('#task-full-calendar').fullCalendar('removeEvents');
                            var events = [];
                            $.each(rsp, function(i, task) {
                                events.push({
                                    start: task.start,
                                    end: task.end,
                                    allDay: task.allDay,
                                    title: task.title,
                                    color: task.color
                                });
                            });
                            callback(events);
                        },
                        error: function(ex) {
                            alert("error occured");
                        },
                        complete: function(obj, rsptype) {

                        }
                    });
                }
            }}]

最近、上記のコードをテストしましたが、これは機能しません。fullcalendarで前と次のボタンをクリックしたときのajaxリクエストだけが機能しますが、静的JSONのデータはレンダリングされません。

とにかく私は2つのイベントリソースを機能させることができますか?

注: ページを表示したときに表示される月に、既にレンダリングされたタスクをページにロードしたいと考えています。

4

1 に答える 1

1

まあ、私はあなたの問題をよく理解していないかもしれませんが、目的を処理する方法は次のとおりです。

eventsources オプション内ですべての「ソース」(静的および動的) を渡す必要があり、行ったようにイベントを「上書き」しないでください。

eventSources: [
     // 1. event source
     array_of_static_events
     // 2. event source
     , { 
         url: "/getevents"
         data: { param1: "test" }
         error: function(){ alert("error"); }
     }
] // end of eventSources

すべては、関連するリモート イベント、イベントソース オブジェクトで詳細に説明されています。

フルカレンダー イベントの静的ソースとリモート ソースが混在する実行例を次に示します。

于 2012-05-25T11:16:14.840 に答える