我正在使用带有 Angular UI 的 arshaw 出色的 fullcalendar,现在我遇到扩展形式的 eventSource 对象在作为 JSON 提要获取时无法呈现的问题。
使用控制器中的以下代码获取数据:
$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 ];
如果我将 API 中的原始 JSON 响应(事件源的扩展形式)直接剪切并粘贴到 eventSources 方法中,它就可以工作。当事件源作为 JSON 提要返回时,是否可以使用扩展形式的事件源?