我正在尝试为组件提供一个选择器字符串。如果有一种方法可以给我这个,那真的很方便。像这样:
Ext.ComponentQuery.getSelector(component)
这将返回该组件的完全限定的选择器字符串,以便
Ext.ComponentQuery.query(Ext.ComponentQuery.getSelector(component)) === component
我还没有找到一个库方法来从组件对象中获取选择器字符串。
编辑:问题不是超级棒。假设您有一个参考Ext JS组件(按钮,字段等等)嵌套在容器,面板,网格,工具栏的层次结构中,这些都是动态的(在应用程序中以编程方式生成)有可能是一种算法为组件的祖先生成该组件的选择器。因此,使用父对象将组件返回到整个应用程序视口的根对象。我理解使用富有表现力的语法选择特定组件的方法不止一种,我不关心所有方式,只是任何方式。
答案 0 :(得分:4)
不存在此类方法。这就像问“有没有一种方法来获取元素的CSS选择器?”。答案是否定的,因为您可以通过多种不同方式选择元素。
举几个例子,您可以通过以下方式获取组件:
#foo
toolbar
panel > container
[action=foo]
或上述的任何组合。
答案 1 :(得分:2)
在ExtJs框架中,不存在返回组件选择器的方法。
但是,你可以获得组件的id,它必须在整个应用程序中是唯一的,然后在选择器中使用它。每个组件都实现getId()
方法,该方法返回您在创建组件时在config中定义的自动生成的唯一ID或id。
var id = component.getId();
然后你可以通过它的id获得组件:
Ext.getCmp(id);
或通过id选择器:
Ext.ComponentQuery.query('#' + id)[0];