我现在已经敲了好几个小时。我正在尝试动态填充选择xtype中的选项,但无法使其工作。这是我的dialog.xml
<resourceType
jcr:primaryType="cq:Panel"
title="Header Type">
<items jcr:primaryType="cq:WidgetCollection">
<headerType
jcr:primaryType="cq:Widget"
fieldLabel="Header Type"
name="./headerType"
type="select"
xtype="selection">
<options jcr:primaryType="cq:WidgetCollection">
<categories
jcr:primaryType="cq:Widget"
path="/content/admin/adminView/jcr:content/header-admin-content/cats/type.infinity.json"
width="500"
xtype="cqinclude" />
</options>
</headerType>
</items>
</resourceType>
我正在制作的json:
content/admin/adminView/jcr:content/header-admin-content/cats/type.infinity.json
看起来像这样:
{"jcr:primaryType":"nt:unstructured","item_1":
{"jcr:primaryType":"nt:unstructured","text":"small","parameter":"small"},"item_2":
{"jcr:primaryType":"nt:unstructured","text":"medium","parameter":"medium"},"item_3":
{"jcr:primaryType":"nt:unstructured","text":"large","parameter":"large"},"item_4":
{"jcr:primaryType":"nt:unstructured","text":"none","parameter":"none"}}
当我打开对话框时没有任何反应我只是得到一个JS错误 TypeError:snippet.xtype未定义
感谢任何帮助!
答案 0 :(得分:7)
selection
xtype的选项可以通过两种方式动态设置
在这两种情况下,JSON返回的数据必须是数组。
要使用方法1,在 headerType 节点上将options
属性设置为将提供JSON数据的路径。将optionsRoot
proprety设置为包含JSON数组的属性的名称。将optionsTextField
设置为应为文本的JSON数据中的属性名称。将optionsValueField
设置为JSOn数据中应该为值的属性名称。
详细的教程可以在这里找到:http://jenikya.com/blog/2013/04/dynamic-dialog-data-in-cq5.html
对于方法2,请参阅this