0

getCmp在我的应用程序中尽可能使用,但现在我想从这种糟糕的编程方式迁移到更好的引用元素的方式。想象一下,我现在有一个itemId设置为“myitemId”的元素,我想从脚本的任何部分引用它,我不想使用upordown方法,因为我希望有一个统一的方式来引用像Ext.getCmp. 我尝试使用Ext.ComponentQuery.query("myitemId")andExt.query("#myitemId")作为替代Ext.getCmp("myitemId"),但无济于事。那么,什么是正确的方法和正确的语法呢?

编辑

Ext.ComponentQuery.query("#myitemId")也不返回任何内容。

PS。我使用 Extjs 4.1

4

1 回答 1

1

替换 Ext.getCmp 的正确语法是:Ext.ComponentQuery.query('#myitemId')[0].

也就是说,简单地将 Ext.getCmp 替换为 Ext.ComponentQuery.query 不会改进您的代码。实际上它会使其变慢,因为 Ext.getCmp 进行简单快速的哈希查找,而 Ext.ComponentQuery.query 每次都进行组件树遍历。

你应该重新考虑整个方法。通过 id 查找组件本身并不错,但从长远来看,它会使您的代码更难维护。

于 2013-08-14T19:02:07.897 回答