如何在AEM中获取对话框的defaultValue属性值

时间:2016-02-10 09:55:06

标签: javascript aem

我有一个对话框选择框。我需要检查我使用属性defaultValue提供的默认值以及我从选择框获得的值是否相等!

因此,要获得选定的价值,我们可以这样:

function(dialog){ 
var selection = dialog.getField("<property name>"); 
var selectedValue = selection.value;
}

现在,如何使用 defaultValue 属性作为名称在javascript中获取价值?

1 个答案:

答案 0 :(得分:1)

查看ExtJS Selection widget的文档,您应该可以将defaultValue作为简单属性进行访问。

这种快速而肮脏的测试似乎证实了这一点。每当我选择一个值时,它会输出dog。看看selectionchanged监听器,看看如何访问该值(并且请不要像我一样将console.log放在监听器中,这只是我运行它并查看它的最快方式; D)

<animal
    jcr:primaryType="cq:Widget"
    allowBlank="true"
    defaultValue="dog"
    fieldLabel="Animal"
    name="./animal"
    type="select"
    xtype="selection">
    <options jcr:primaryType="cq:WidgetCollection">
        <dog
            jcr:primaryType="nt:unstructured"
            text="Dog"
            value="dog"/>
        <cat
            jcr:primaryType="nt:unstructured"
            text="Cat"
            value="cat"/>
        <mouse
            jcr:primaryType="nt:unstructured"
            text="Mouse"
            value="mouse"/>
    </options>
    <listeners
        jcr:primaryType="nt:unstructured"
        selectionchanged="function(selection, value) {console.log(selection.defaultValue)}"
    </listeners>
</animal>

要专门解决您的示例,您使用dialog.getField("name");来获取该字段。

Dialog#getField会返回FieldField[](字段数组)对象,具体取决于与名称匹配的字段数。

另一方面,CQ.ext.form.Field也应该有一个defaultValue

如果你不能只在你发布的代码中访问selection.defaultValue,我想selection实际上是一个你必须迭代的数组,或者配置错误您的对话框(请查看dialog.xml并确保defaultValue实际上位于正确的级别。