在Dialog的loadContent中访问CQ Widget

时间:2014-09-10 02:10:34

标签: cq5 aem

我在对话框的loadContent上有监听器,我想从中访问特定的小部件。以下是代码:

loadContent : function(dialog)
{
    var pan1 = dialog.findById("layout1");
    pan1.hide();
    console.log("pan1 ::: "+pan1); //gives null
}

以下是对话框中的项目:

<items
        jcr:primaryType="cq:Widget"
        xtype="tabpanel">
        <items jcr:primaryType="cq:WidgetCollection">
            <panel1
                jcr:primaryType="cq:Panel"
                title="Slide">
                <items jcr:primaryType="cq:WidgetCollection">
                    <one
                        jcr:primaryType="cq:Widget"
                        fieldLabel="one"
                        itemId="layout2"
                        name="./one"
                        type="checkboxgroup"
                        xtype="selection">
                        <options jcr:primaryType="cq:WidgetCollection">

                        </options>
                    </one>
                    <two
                        jcr:primaryType="cq:Widget"
                        fieldLabel="two"
                        itemId="layout1"
                        name="./two"
                        type="checkboxgroup"
                        xtype="selection">
                        <options jcr:primaryType="cq:WidgetCollection">  
                        </options>                      
                    </two>
                </items>
            </panel1>
        </items>

我希望在特定条件下隐藏特定选项。所以首先需要访问checkboxgroup。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

不熟悉findById方法 - 您确定它正在寻找&#34; itemId&#34;?

的属性

您也可以使用getField(…)方法:

var pan1 = dialog.getField("./two");
/* Not sure above why the field with name "two" has an ID of "one"? Typo? */

您可能还想为selectionchanged添加一个侦听器,以便在加载后更改下拉列值时显示这些部分。

答案 1 :(得分:1)

请尝试使用id的{​​{1}},instead

我曾尝试过类似的问题,并使用了id。

答案 2 :(得分:0)

从小部件API开始: -

findById(String id):CQ.Ext.Component 不推荐使用:相当无用的方法,因为你可以只使用CQ.Ext.getCmp。应该删除4.0 通过id

在任何级别查找此容器下的组件

你可以宁愿使用 dialog.find( 'somepropertylikeId', 'valueOfthatPropertyLikeLayout2')[0];