我在我的应用程序中尽可能使用getCmp
,但现在我想从这种糟糕的编程迁移到更好的引用元素的方式。想象一下,我现在有一个itemId
设置为“myitemId”的元素,我想从脚本的任何部分引用它,我不想使用up
或down
方法,因为我希望有一种统一的方式来引用像Ext.getCmp
这样的元素。我尝试使用Ext.ComponentQuery.query("myitemId")
和Ext.query("#myitemId")
作为Ext.getCmp("myitemId")
的替代方案,但无济于事。那么,使用正确的方法和正确的语法是什么?
修改
Ext.ComponentQuery.query("#myitemId")
也不会返回任何内容。
PS。我使用Extjs 4.1
答案 0 :(得分:1)
替换Ext.getCmp的正确语法是:Ext.ComponentQuery.query('#myitemId')[0]
。
也就是说,只需用Ext.ComponentQuery.query替换Ext.getCmp就不会改进你的代码。实际上它会使它变慢,因为Ext.getCmp进行简单快速的哈希查找,而Ext.ComponentQuery.query每次都进行组件树遍历。
你应该重新考虑整个方法。按ID查找组件本身并不错,但从长远来看,这将使您的代码难以维护。