AEM-如何将数据传递到组件
通常AEM组件从JCR节点检索其数据,但我想知道是否可以在HTL中向其传递数据。当然,有AEM-如何将数据传递到组件,aem,aem-6,Aem,Aem 6,通常AEM组件从JCR节点检索其数据,但我想知道是否可以在HTL中向其传递数据。当然,有数据资源,但据我所知,这种方式只能传递JCR节点 所以在一个实际案例中,我在一个从别处检索的模型中得到了数据。但是我想使用现有的组件。我知道数据必须至少与组件类型的模型匹配 但是,如果我想使用的组件使用的是一个模型,该模型的数据注入方式如下 @Inject @Optional String[] itemList; 所以在我固执的想法中,应该可以通过某种方式传递一个字符串数组,比如 <div data-
数据资源
,但据我所知,这种方式只能传递JCR节点
所以在一个实际案例中,我在一个从别处检索的模型中得到了数据。但是我想使用现有的组件。我知道数据必须至少与组件类型的模型匹配
但是,如果我想使用的组件使用的是一个模型,该模型的数据注入方式如下
@Inject
@Optional
String[] itemList;
所以在我固执的想法中,应该可以通过某种方式传递一个字符串数组,比如
<div data-sly-resource="${myModel.aStringArray @ resourceType='my/component' }"></div>
但就像上面提到的,这似乎只是为了传递节点
是否有任何方法可以直接向组件传递数据(而不是创建模板)?您可以以请求属性或选择器的形式传递附加信息 选择器 选择器是传递简单信息最直接的方法。这是一个可以传递的字符串数组。这对于可以用作标志的数据非常有用,例如:
- 组件的变体/模式
- 如果组件包含在循环中,则列表中组件的索引
- 构建诸如手风琴、制表符等内容时的父级ID
<article data-sly-resource="${'path/to/resource' @ selectors=['s1', 's2']}"></article>
请求属性
此选项允许您向组件请求添加自定义请求属性。这可用于在包含对象时将对象作为参数传递给组件
这些是标准的http请求属性,用于将它们限定到脚本/资源包含的特定实例。要使用它,您最终将需要一个模型类或使用js,因为几乎不支持组合要传递的数据
<sly data-sly-use.settings="com.adobe.examples.htl.core.hashmap.Settings"
data-sly-include="${ 'productdetails.html' @ requestAttributes=settings.settings}" />
您可以以请求属性或选择器的形式传递附加信息
选择器
选择器是传递简单信息最直接的方法。这是一个可以传递的字符串数组。这对于可以用作标志的数据非常有用,例如:
- 组件的变体/模式
- 如果组件包含在循环中,则列表中组件的索引
- 构建诸如手风琴、制表符等内容时的父级ID
这种方法是对选择器的滥用,但我认为只要你知道自己在做什么,这就不应该是一个主要问题
<article data-sly-resource="${'path/to/resource' @ selectors=['s1', 's2']}"></article>
请求属性
此选项允许您向组件请求添加自定义请求属性。这可用于在包含对象时将对象作为参数传递给组件
这些是标准的http请求属性,用于将它们限定到脚本/资源包含的特定实例。要使用它,您最终将需要一个模型类或使用js,因为几乎不支持组合要传递的数据
<sly data-sly-use.settings="com.adobe.examples.htl.core.hashmap.Settings"
data-sly-include="${ 'productdetails.html' @ requestAttributes=settings.settings}" />
还有另一种方法。您可以在初始化时使用data use将其他参数传递给Sling模型。例如:
还有另一种方法。您可以在初始化时使用data use将其他参数传递给Sling模型。例如:
您可以扩展SlingModel以从任何地方(请求、资源、远程服务)获取数据,也可以添加另一个包含在HTL文件中的模型。我不确定我是否在这里看到了问题..?您可以扩展SlingModel以从任何地方(请求、资源、远程服务)获取数据,也可以添加另一个包含在HTL文件中的模型。我不确定是否在这里看到了问题。@Shararh Madappa如何访问接收包含HTML(即productdetails.HTML)中的requestAttributes数据?@Shararh Madappa如何访问接收包含HTML(即productdetails.HTML)中的requestAttributes数据?