我正在写一个xtype标签的多字段 它的对话是
<path
jcr:primaryType="cq:Widget"
fieldLabel="Compare Tags"
name="./compareTag"
xtype="multifield">
<fieldConfig
jcr:primaryType="cq:Widget"
xtype="tags">
<namespaces jcr:primaryType="cq:WidgetCollection">
<categorynm
jcr:primaryType="nt:unstructured"
maximum="1"
name="properties"/>
</namespaces>
</fieldConfig>
</path>
我第一次打开对话框时工作正常。但是,在页面刷新后,多字段项目将不会有任何预先填充的数据。 在进一步检查时,我发现负责填充数据的json是
"compareTag": [
"properties:orientation/landscape",
"properties:style/monochrome",
"properties:style/color"
]
为了显示以前选择的值的对话框,它应该是
"compareTag": [
[
"properties:orientation/landscape"
],
[
"properties:style/monochrome"
],
[
"properties:style/color"
]
]
这是因为xtype'tags'本身将它的值存储在多字段中。只能使用OOTB功能来满足此要求。 提前谢谢。
答案 0 :(得分:2)
简而言之,xtype&#39; Multifield&#39;将所有输入存储为crx中的条目数组。
所以,从技术上讲,我的标签实施&#39;在多字段内部不会工作,因为xtype&#39;标签&#39;本身可以存储标签的多个条目。标签本身作为数组存储在存储库中。
OOTB multifield无法解决此问题。我改变了使用xtype&#39; Multifieldpanel&#39;实现同样的目标。它会工作,因为multifieldpanel会将数据存储为json。
location.reload();
你可以通过互联网找到multifieldpanel.js和迭代字段,用户的JSONObject API。