10

我在如何为对话框的选择中添加选项时遇到了困难。

我正在阅读的 Adob​​e 笔记在这里:CQ.form.Selection

向下滚动options : Object[]/String将显示两种方法来引用选项以提供所述选择,通过对象或字符串。我正在尝试使用对象方法。他们提供的格式示例就足够了。

[
    {
        value: "pink", // all types except "combobox"
        text: "Pink",
        qtip: "Real Pink" // "select" and "combobox"
    }
]

但是,CRXDE Lite 不允许我在添加新属性时选择或键入 Object,这就是我不知所措的地方。有没有其他方法可以输入一个复杂的值?

4

1 回答 1

20

添加选项Object[]将通过子节点而不是属性来完成。(事实上​​,你Object在 API 中看到的任何地方,思考node而不是property。)

在您的dialog.xml文件中,这将按如下方式完成:

<selectList
    jcr:primaryType="cq:Widget"
    defaultValue="0"
    fieldLabel="Number"
    name="./number"
    type="select"
    xtype="selection">
    <options jcr:primaryType="cq:WidgetCollection">
        <one
            jcr:primaryType="nt:unstructured"
            text="One"
            value="1"/>
        <two
            jcr:primaryType="nt:unstructured"
            text="Two"
            value="2"/>
        <three
            jcr:primaryType="nt:unstructured"
            text="Three"
            value="3"/>
        <four
            jcr:primaryType="nt:unstructured"
            text="Four"
            value="4"/>
    </options>
</selectList>

在 CRXDE 中,这可以通过创建相同的层次结构来实现:

  1. 右键单击您的选择节点并选择Create > Node
  2. 给这个节点一个jcr:primaryTypecq:WidgetCollection这将保存您的选项值。
  3. 现在可以将单个选项添加为 this 的子节点,其中 a jcr:primaryTypeof nt:unstructured
  4. 将您的属性 ( value, text, qtip) 放在这些子节点上。
于 2013-07-08T18:29:59.963 回答