2013-03-15 19 views
1

我正在使用arshaw和Angular UI的優秀fullcalendar,現在我遇到了擴展形式的eventSource對象存在問題,並且在以JSON提取方式提取時無法呈現。帶有JSON提要的Fullcalendar以擴展形式返回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在其extended form中返回事件源。這是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提要返回時,是否可以使用擴展形式的事件源?

回答

0

難道是從API返回的eventSource不是應該使用擴展表單選項的地方,而是用作eventSource的事件函數。

該文檔指出擴展表單應該用在用於調用API的Json對象中。

http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/

如果API太返回該事件的附加選項,那就需要單獨設置每個之一。

當前在這篇文章中,我看到的擴展選項被調用的唯一地方是從返回的API數據。

我認爲這應該是相反的方式。而且日曆在它甚至請求數據之前應該知道擴展表單。這意味着服務器不需要返回任何額外的選項,日曆將通過提要和擴展選項來組織事件對象。

如果你可以發佈plunk,那麼我們可以指出這一點。

+0

是的,你可能是對的。我稍微更新了代碼示例以澄清一點。如您所見,每個事件源的顏色選項都不相同。我會盡量在明天或者後一天得到一些樂趣。 – 2013-03-16 08:49:15

+0

我做了一個plunk:http://plnkr.co/edit/XWEhZWEwsYbjeFnTEDw3?p=preview我仍然認爲你是對的,不能包含帶有選項的擴展事件源。我是新角度,但我認爲我可以使用服務來請求並返回數據?謝謝你的時間。 – 2013-03-18 09:37:27

+0

所以我所做的只是讓feed對象利用擴展形式並將events.json文件更改爲僅返回一個純粹的事件數組,並且擴展形式對每個提要對象(如虛擬)都起作用。 http://plnkr.co/edit/7L0MZ72FfNCwrKsg5Dcs?p=preview – joshkurz 2013-03-20 19:02:41