Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS4,有没有找到控件的方法?(不是通过“id”进行的)_Javascript_Extjs_Extjs4 - Fatal编程技术网

Javascript ExtJS4,有没有找到控件的方法?(不是通过“id”进行的)

Javascript ExtJS4,有没有找到控件的方法?(不是通过“id”进行的),javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我有一个带有id='someid'的按钮,我可以通过Ext.getCmp('someid')找到它 有没有办法为该按钮设置某种类型的“extraId”,并通过“extraId”查找该按钮?您可以通过执行以下操作来搜索该按钮 在链接页面的控制台中工作的示例: Ext.ComponentQuery.query('button[text=OK]') 您可以用正在搜索的属性替换text=OK。我没有访问ExtJS 4 API文档的权限,但我知道在3.X和以前的版本中,有一些其他方法可以在不使用DOM

我有一个带有
id='someid'
的按钮,我可以通过
Ext.getCmp('someid')
找到它


有没有办法为该按钮设置某种类型的“extraId”,并通过“extraId”查找该按钮?

您可以通过执行以下操作来搜索该按钮

在链接页面的控制台中工作的示例:

Ext.ComponentQuery.query('button[text=OK]')

您可以用正在搜索的属性替换
text=OK

我没有访问ExtJS 4 API文档的权限,但我知道在3.X和以前的版本中,有一些其他方法可以在不使用DOM ID的情况下获取对组件的引用

如果您的组件是表单或表单面板的一部分,则您应该可以访问名为findField()的方法。该方法继承自基本表单。此方法可以使用id、dataIndex、name或hiddenName来获取对组件的引用


还有一个名为findByType(xtype)的助手方法,可用于尝试查找按钮。另一个选项是扩展用于放置唯一属性的按钮,该属性可用作参考。

问题是要在何处搜索以获取项目

另一种方法可以是itemId

当没有可用的对象引用时,可以使用itemId作为获取组件引用的替代方法。不要将id与Ext.getCmp一起使用,而是将itemId与Ext.container.container.getComponent一起使用,后者将检索itemId或id。由于itemId是容器内部MixedCollection的索引,因此itemId的作用域为loc与容器联合--避免与需要唯一id的Ext.ComponentManager发生潜在冲突

资料来源和进一步文件:


ComponentQuery(wombleton提到)也是一种很好的方法,但性能可能不如itemId。

id的另一种替代方法是itemId,它仅限于定义它的容器的范围。因此,在这种情况下,不需要像在id的情况下那样定义全局唯一的itemId。我们可以使用组件查询来获取具有itemId的组件对象。请遵循下面是我发布的关于如何使用itemId及其好处的链接。

不,没有。您可以使用基本javascript节点属性从父容器访问按钮组件[对于extjs来说,这是抽象的,因此不建议使用该属性]。不,extjs不提供任何此类机制。但是您可以创建一个管理器对象,用于存储具有某些键/值(id/按钮对象)的按钮然后根据该id检索它们。我知道:)但是..我想这样做..有办法吗?这不必是ExtJs中的内置函数…非常有用。很长时间以来,我一直在努力寻找一种方法来引用Ext示例中的Dekstop对象或taskbar对象。意识到桌面是唯一使用任务栏,这是完美的:Ext.Cuffice Queal.Qu查询([TaskBar)](0)是的,我建议使用ItIDID= OK。还考虑使用UP()或Unter()。因此,您可能会从某个组件中得到事件。