私はAngular UIでarshawによる優れたfullcalendarを使用していますが、現在、JSONフィードとしてフェッチされたときにレンダリングされない拡張形式のeventSourceオブジェクトに問題があります。
データは、コントローラーで次のコードを使用してフェッチされます。
$scope.events = [
'/api/v1/users/104/events?format=cal&type=9',
'/api/v1/users/104/events?format=cal&type=10'
];
$scope.eventSources = $scope.events;
JSON フィードがイベント オブジェクトを含む配列を返す場合、実際には機能します。
// returned by - /api/v1/users/104/events?format=cal&type=9
[
{
url: "/#/events/86893",
start: "2013-03-15",
title: ": Event - 86893"
},
{
url: "/#/events/31348",
start: "2013-03-27T09:30Z",
title: "Event - 31348"
}
],
// returned by - /api/v1/users/104/events?format=cal&type=10
[
{
url: "/#/events/86899",
start: "2013-03-25",
title: ": Event - 86899"
},
{
url: "/#/events/31349",
start: "2013-03-17T09:30Z",
title: "Event - 31349"
}
]
ただし、JSON フィードごとに異なる色など、イベント データと共にいくつかのオプションを指定したいと考えています。したがって、API がイベント ソースを拡張形式で返すことにしました。これは、API が返すものです。
// returned by - /api/v1/users/104/events?format=cal&type=9
{
events: [
{
url: "/#/events/86893",
start: "2013-03-15",
title: "Event - 86893"
},
{
url: "/#/events/31348",
start: "2013-03-27T09:30Z",
title: "Event - 31348"
}
],
color: "#ff9900",
allDayDefault: false,
ignoreTimezone: true
},
// returned by - /api/v1/users/104/events?format=cal&type=10
{
events: [
{
url: "/#/events/86899",
start: "2013-03-25",
title: "Event - 86899"
},
{
url: "/#/events/31349",
start: "2013-03-17T09:30Z",
title: "Event - 31349"
}
],
color: "#3366FF",
allDayDefault: false,
ignoreTimezone: true
}
残念ながら、この形式は JSON としてフェッチされたときにレンダリングされません。拡張フォーマットを取得するとき、eventSources の割り当てを次のように変更しました。
$scope.eventSources = [ $scope.events ];
生の JSON 応答 (拡張形式のイベント ソースを含む) を API からカット アンド ペーストして、eventSources メソッドに直接貼り付けると、機能します。JSON フィードとして返される場合、イベント ソースを拡張された形で消費することはできませんか?