2

我对 Alfresco Aikau 很陌生,我只是不明白有效载荷是如何工作的。有很多使用有效负载的示例,但我没有建立连接。

我似乎找到的所有示例都表明(对我而言)有效负载用于定义将加载并返回到小部件的数据列表。

但是,数据列表似乎总是一个 url,我假设 url 的结果是一个 json 对象。

如果我想调用构建 json 对象并将其返回到小部件的 webscript 怎么办?这样做的机制是什么?我是否将其加载到有效负载中,如果是,如何加载?

希望你能理解我的困惑,并能指出我正确的方向。

谢谢

4

1 回答 1

2

Aikau 使用发布/订阅模型来完全解耦所有小部件和服务。“有效负载”是在主题上发布并由订阅者使用的对象。没有单一的有效负载类型,每个小部件和服务可能期望包含不同数据的不同有效负载。我们一直在研究开箱即用的小部件使用的所有主题,并将它们移动到常量模块和JSDoc中,该文档记录了每个主题的每个有效负载的结构。

在回答您的具体问题时 - 列表包中的一个小部件(最基本的是 alfresco/lists/AlfList)将发布一个请求加载数据的有效负载。列表可以与任何服务一起使用,因此发布的主题将根据您希望使用的服务而有所不同,同样发布的有效负载也会有所不同。

例如,如果您使用 CrudService,那么有效负载将需要包含要加载的 URL。大多数其他服务不需要 URL,因为它们被编写为处理特定数据并使用已知 URL 来检索该数据。

尽管在所有情况下都使用 CrudService 可能很诱人,但使用专用服务有很多好处——包括编写你自己的自定义服务——以规范返回的数据(因为许多基于 WebScript 的核心 REST API 不遵循一个共同的模式)。

当服务加载数据时,它将在响应主题上发布数据 - 发布的有效负载将包含实际的列表数据。再一次,CrudService 将没有数据模式的“知识”,因此需要配置列表(使用“itemsProperty”属性)以识别有效负载中包含表示列表的数据数组的属性渲染)。

GitHub 上的Aikau 教程介绍了创建使用列表和加载列表数据(来自各种来源)的页面的过程 - 如果您还没有完成该教程,我建议您完成。

也可以用数据初始化一个列表(通过“currentData”属性),这样您就不需要对数据发出 XHR 请求。

于 2016-08-30T08:06:38.023 回答