7

我正在寻找一种访问组件/字段的方法,这些组件/字段要么与访问对象位于相同的项目数组中,要么仅位于相同的父项目数组中(最后一个只是一个选项)。

在 ExtJS3 中,这很容易,只需ref在所有者容器中定义 a,但我在 ExtJS4 中没有找到类似的东西。

我知道我可以使用Ext.ComponentQuery()或快捷方式up()/down()甚至Ext.getCmp(),但它们都不是我想要的,因为它们只是执行一堆代码,而这ref是一种简单的做事方式。是的,我知道使用 ComponentQuery 比使用硬编码引用更安全。但我只想知道是否有其他方法可以做到这一点。

4

2 回答 2

11

或者,对于获取容器中的下一个元素的情况,您可以使用nextSiblingor prevSibling。所有组件都有这些方法。在 DOM 结构中走动会少一些。它们还允许选择器参数。

它们在此处的文档中进行了描述。

于 2012-11-02T17:58:00.673 回答
6

以下是我使用的一些技巧:

//lookup by name
formPanel.getForm().findField('state'); 

//lookup using nextSibling/prevSibling in a fieldset or fieldcontainer
myField.ownerCt.nextSibling('textfield[fieldLabel=Description]')

这里fieldLabel属性用于缩小字段选择范围,但您可以使用任何属性。因此,如果您构造一个具有属性的字段,ref则可以使用它来选择您的字段,类似于在ComponentQuery.

于 2012-11-02T20:45:52.043 回答