使用数据源时 AEM 中 Select 小部件项的数据属性
Data attributes for Select widget items in AEM when using datasource
我想在 AEM 对话框中为 granite/ui/components/coral/foundation/form/select
小部件使用数据源机制。
我想在 HTML 个 select 项中呈现额外的数据属性。当不使用数据源并直接在对话框的 XML 文件中包含 select 项时,我可以使用 granite:data 节点添加数据属性:
<text
jcr:primaryType="nt:unstructured"
text="Text"
value="text">
<granite:data
jcr:primaryType="nt:unstructured"
custom-attribute="custom-attribute-value"/>
</text>
当项目来自数据源 Servlet 时,是否可以以某种方式包含数据属性?我正在为我的数据源 servlet 使用 this example code。特别是,我正在更新资源的值映射并将其返回到对话框。我可以用这个值映射做些什么来在特定元素的 HTML?
中呈现 `data-custom-attribute="custom-attribute-value"
private Resource getItemResource(ResourceResolver resolver, String text, String value) {
ValueMap vm = new ValueMapDecorator(new HashMap<>());
vm.put("text", text);
vm.put("value", value);
return new ValueMapResource(resolver, "", "", vm);
}
向此地图添加其他条目确实会导致呈现 granite/ui/components/foundation/form/select
的数据属性,但不会呈现我想使用的 granite/ui/components/coral/foundation/form/select
的数据属性。
我们可以将名称为 granite:data
的子节点添加到我们将从 DataSource servlet 返回的资源中。此子节点的属性将成为标记中的数据属性对。我认为使用 ValueMapResource
不可能像问题中那样使用,但可以使用存储在 JCR 中的真实资源来完成。
许多其他属性可以添加到原始资源(不是作为子资源),它们也会在 HTML 标记中呈现:
granite:id
granite:rel
granite:class
granite:title
granite:hidden
granite:itemscope
granite:itemtype
granite:itemprop
我想在 AEM 对话框中为 granite/ui/components/coral/foundation/form/select
小部件使用数据源机制。
我想在 HTML 个 select 项中呈现额外的数据属性。当不使用数据源并直接在对话框的 XML 文件中包含 select 项时,我可以使用 granite:data 节点添加数据属性:
<text
jcr:primaryType="nt:unstructured"
text="Text"
value="text">
<granite:data
jcr:primaryType="nt:unstructured"
custom-attribute="custom-attribute-value"/>
</text>
当项目来自数据源 Servlet 时,是否可以以某种方式包含数据属性?我正在为我的数据源 servlet 使用 this example code。特别是,我正在更新资源的值映射并将其返回到对话框。我可以用这个值映射做些什么来在特定元素的 HTML?
中呈现 `data-custom-attribute="custom-attribute-value"private Resource getItemResource(ResourceResolver resolver, String text, String value) {
ValueMap vm = new ValueMapDecorator(new HashMap<>());
vm.put("text", text);
vm.put("value", value);
return new ValueMapResource(resolver, "", "", vm);
}
向此地图添加其他条目确实会导致呈现 granite/ui/components/foundation/form/select
的数据属性,但不会呈现我想使用的 granite/ui/components/coral/foundation/form/select
的数据属性。
我们可以将名称为 granite:data
的子节点添加到我们将从 DataSource servlet 返回的资源中。此子节点的属性将成为标记中的数据属性对。我认为使用 ValueMapResource
不可能像问题中那样使用,但可以使用存储在 JCR 中的真实资源来完成。
许多其他属性可以添加到原始资源(不是作为子资源),它们也会在 HTML 标记中呈现:
granite:id
granite:rel
granite:class
granite:title
granite:hidden
granite:itemscope
granite:itemtype
granite:itemprop