Javascript 运行渲染器后,将extjs组件渲染到网格列中
我有一个自定义渲染器。像这样Javascript 运行渲染器后,将extjs组件渲染到网格列中,javascript,templates,extjs,extjs4,render,Javascript,Templates,Extjs,Extjs4,Render,我有一个自定义渲染器。像这样 grid.healthCheckColumn = Ext.create('Ext.grid.column.Column', { id: 'healthCheckColumn', header: 'Health Check', renderer: Ext.bind(me.renderHealthCheckColumn, me) }); 此渲染器返回一个带有类“health check button”的div,该类渲染良好。这是我的问题 渲染器
grid.healthCheckColumn = Ext.create('Ext.grid.column.Column', {
id: 'healthCheckColumn',
header: 'Health Check',
renderer: Ext.bind(me.renderHealthCheckColumn, me)
});
此渲染器返回一个带有类“health check button”的div,该类渲染良好。这是我的问题
渲染器使用div填充网格单元后,我希望触发一个事件,该事件将允许我将ExtJS组件渲染到该div。下面是我要渲染的组件:
var button = Ext.create('Ext.button.Button', {
ui: 'plain',
disable: val,
text: 'Analyze',
renderTo: div_element
});
这不起作用的原因是,ExtJS组件只能渲染到DOM中已经存在的元素,而该元素在渲染器运行之后才会存在
显然,我可以在渲染器中调用Ext.defer(),以便在超时后触发事件,但这似乎有点草率。这里提出了(类似问题的)解决方案:
我试图弄清楚事件发生的顺序,以及顺序,但这并没有被记录下来,我无法理解ExtJS源代码beforerender
、render
和afterrender
在渲染器运行之前都会触发,这没有帮助
有什么建议吗?我正在运行ExtJS 4.3。建议采用“黑客”方式,原因见您链接的文章(单个单元格根本没有触发事件,因为它本身没有组件)。