2016-08-30 33 views
2

我對Alfresco Aikau非常陌生,我只是不明白有效載荷是如何工作的。有很多使用有效載荷的例子,但我沒有建立連接。Aikau基本面 - 有效載荷101

我似乎找到的所有示例都表明(對我來說)有效負載用於定義將被加載並返回到小部件的數據列表。

但是,數據列表似乎總是一個url,我假設url的結果是一個json對象。

如果我想調用構建json對象並將其返回給窗口小部件的web腳本,該怎麼辦。那會是什麼機制?我是否將其加載到有效載荷中,如果是這樣的話?

希望你明白我的困惑,並能指引我朝着正確的方向前進。

感謝

回答

2

Aikau使用發佈/訂閱模式完全脫鉤所有的部件和服務。 「有效載荷」是發佈在主題上並由訂戶使用的對象。沒有單一的有效載荷類型,每個小部件和服務可能期望包含不同數據的不同有效載荷。我們一直在研究開箱即用的小部件所使用的所有主題,並將它們移動到常量模塊,併爲此編制了每個主題的每個有效負載的結構。

回答你的具體問題 - 列表包中的一個小部件(最基本的是alfresco/lists/AlfList)將發佈一個請求加載數據的有效載荷。列表可以與任何服務一起使用,所以發佈的主題將根據您希望使用的服務而有所不同,同樣,發佈的有效負載也會不同。

例如,如果您使用的是CrudService,則負載將需要包含要加載的URL。大多數其他服務不需要URL,因爲它們被編寫爲使用特定數據並使用已知URL來檢索該數據。

雖然在所有情況下都可能使用CrudService,但使用專用服務(包括編寫自定義服務)有很多好處,以便規範化返回的數據(因爲許多基於WebScript的核心REST API不遵循通用模式)。

當服務加載數據時,它將在響應主題上發佈數據 - 發佈的有效負載將包含實際的列表數據。再一次,CrudService將不具有數據模式的「知識」,因此需要配置列表(使用「itemsProperty」屬性)來識別有效載荷中包含代表列表的數據數組的屬性渲染)。

GitHub上的Aikau tutorial通過創建使用列表和加載列表數據(來自各種來源)的頁面的過程工作 - 如果您還沒有,我建議您完成教程。

也可以使用數據初始化一個列表(通過「currentData」屬性),以便您不需要爲數據創建XHR請求。