0

FullCalendar jQuery ライブラリ ( http://arshaw.com/fullcalendar/ ) は、t に対する私のニーズを満たしています。必要なものだけが揃っているようです。ただし、この既存の JSON サービス リターンを使用するように構成する方法がわかりません。

{
    "SystemResponse": null,
    "Events": 
    {        
        "systemMessageField": "",
        "otherMessageField": "",
        "eventsField": 
        [
            {
                "additionalTextField": "",
                "eventTitle": "eventTitle1",
                "eventCommentsField": "",
                "eventDateTimeField": "/Date(1379953200000-0500)/",
                "eventDateTimeFieldSpecified": true,
                "eventEndDateTimeField": "/Date(1379954400000-0500)/",
                "eventSourceIDField": "2",
                "eventSourceNumberField": "",
                "eventTimeZoneField": "CDT",
                "eventTypeField": "9109"
            },
            {
                "additionalTextField": "Add Text",
                "eventTitle": "eventTitle1",
                "eventCommentsField": "",
                "eventDateTimeField": "/Date(1379975400000-0500)/",
                "eventDateTimeFieldSpecified": true,
                "eventEndDateTimeField": "/Date(1379979000000-0500)/",
                "eventSourceIDField": "3",
                "eventSourceNumberField": "",
                "eventTimeZoneField": "CDT",
                "eventTypeField": "U123"
            }
        ]
    }
}

サービスは、「理想的な」FullCalendar リターンのようなものを返す必要があると思います。

[
    "0",
    {
        "allDay": "",
        "title": "Test event",
        "id": "821",
        "end": "2011-06-06 14:00:00",
        "start": "2011-06-06 06:00:00"
    },
    "1",
    {
        "allDay": "",
        "title": "Test event 2",
        "id": "822",
        "end": "2011-06-10 21:00:00",
        "start": "2011-06-10 16:00:00"
    }
]

FullCalendar 機能を利用して、元のソース json とマップを次のように取得する方法はありますか?

eventDateTimeField->開始
イベントEndDateTimeField->終了
イベントタイトル->タイトル

次に、FullCalendar コントロールは、元のイベント サービスを使用してイベントを作成できるはずです (ああ、それらの厄介な json 日付を解析します...)

4

1 に答える 1

0

JSON フィードからの結果を FullCalendar の Event オブジェクト プロパティにマッピングするという正しい考えがあります。

allDay がブール値であることを確認する必要があります。つまり、引用符なしで true または false を返す必要があります (ブラウザーを使用して、 trueまたはfalseを引用符なしで "allDay":true または "allDay":false と表示するようにしてください! )。それか、まったく返さずに、デフォルトをすべてのイベントに適用させます (あまり実用的ではありません)。

また、1 つの日付形式に標準化することも有用です。UNIX の日付/時刻形式が、FullCalendar とデータベース バックエンド間の最も信頼できる通信手段であることがわかりました。ただし、これを秒単位で行う必要があることに注意してください (最近では 10 桁)。あなたの例から、ミリ秒単位であることがわかります。1,000 で割るか、文字列のように扱い、左端の 10 文字を取得する必要があります。データを UTC で保存し、データベースの外部でタイム ゾーン操作を行うことをお勧めします。この操作は、日付の取得と保存に適用されます。

既存の JSON フィードのコーディングを変更できない場合は、中間の「リスナー」を作成して現在のフィードからデータを取得し、それを操作することができます (allDay が実際にはブール値であり、イベント、日付/時刻データを再フォーマットし、要素の名前を翻訳します)。FullCalendar イベントは、仲介者が既存の JSON フィードを照会して作成した JSON フィードから発生したように見えます。

FullCalendar は、それらを使用するかどうかに関係なくすべてのプロパティを格納するため、FullCalendar の適切な操作に少数のプロパティしか必要としないにもかかわらず、フィードから入手できる拡張データに基づいてイベント オブジェクトを操作できます。

于 2013-11-04T17:02:40.937 に答える