我从应用程序代码的特定部分调用了以下Ext.getElementById
,在此上下文中调用时可以正常工作:
init: function() {
// template method called when app boots; before Viewport is created
this.control({
'launcherlist': {
itemclick: function (dataView, record) {
Ext.getElementById('element-id');
},
}
...
}
但是我需要在更早的阶段调用getElementById
,然后才会发生任何用户触发的事件。
在init
内直接调用getElementById
时,它不起作用,因为在应用启动时会调用init
;在创建视口之前。
所以我决定覆盖控制器的onLaunch
事件,因为onLaunch
是init
之类的模板方法,但在创建视口后调用:
onLaunch: function() {
Ext.getElementById('element-id');
},
然而,这也不起作用。
TL / DR
在任何用户触发操作发生之前,我可以在哪里进行工作 Ext.getElementById
来电?
答案 0 :(得分:3)
您可能想解释一下您要做的事情。 getElementById是一个“私有”方法,你不应该真正调用它。如果您想通过id获取元素,请使用Ext.get。
答案 1 :(得分:0)
<强>解决方案:强>
由于渲染我正在寻找的DOM元素的窗口小部件扩展为Ext.view.View
,因此 Ext.get
之后可以实际找到渲染元素的正确事件是{{ 1}}事件。
P.S。一个人应该使用viewready
而不是Ext.get
,因为后者是私有方法。