我对Aikau是个新手,我就是不明白有效载荷是如何工作的。有许多使用有效负载的示例,但我没有建立连接。
我找到的所有示例似乎都表明(对我来说)有效负载用于定义将被加载并返回给小部件的数据列表。
但是,数据列表似乎总是一个url,我假设url的结果是一个json对象。
如果我想调用一个构建json对象的webscript并将其返回给小部件,该怎么办?这样做的机制是什么?我是否将其加载到有效负载中?如果是,如何加载?
希望您能理解我的困惑,并为我指明正确的方向。
谢谢
发布于 2016-08-30 16:06:38
Aikau使用发布/订阅模型来完全解耦所有的小部件和服务。"payload“是在主题上发布并由订阅者使用的对象。没有单一的有效负载类型,每个小部件和服务可能期望包含不同数据的不同有效负载。我们一直在研究小部件开箱即用的所有主题,并将它们移到一个常量模块中,该模块的JSDoc记录了每个主题的每个有效负载的结构。
回答您的特定问题-列表包中的一个小部件(最基本的是alfresco/list/AlfList)将发布一个请求加载数据的有效负载。列表可以与任何服务一起工作,因此在上发布的主题将根据您希望使用的服务而不同,类似地,发布的有效负载也会不同。
例如,如果您使用的是CrudService,那么有效负载将需要包含要加载的URL。大多数其他服务不需要URL,因为它们是为处理特定数据而编写的,并使用已知的URL来检索该数据。
尽管在所有情况下都使用CrudService可能很诱人,但是使用专用服务有很多好处--包括编写您自己的定制服务--以便规范化返回的数据(因为许多基于WebScript的核心REST API不遵循公共模式)。
当服务加载数据时,它将在响应主题上发布数据--发布的有效负载将包含实际的列表数据。同样,CrudService不会“了解”数据模式,因此需要配置列表(使用"itemsProperty“属性),以标识有效负载中的属性(该属性包含表示要呈现的列表的数据数组)。
GitHub上的Aikau tutorial完成了创建使用列表和加载列表数据(来自各种来源)的页面的过程-如果您还没有完成本教程,我建议您完成本教程。
也可以使用数据初始化列表(通过"currentData“属性),这样就不需要向XHR请求数据。
https://stackoverflow.com/questions/39219479
复制相似问题