即使在使用 renderTo 之后,Extjs 按钮也不会在 div 内呈现

Posted

技术标签:

【中文标题】即使在使用 renderTo 之后,Extjs 按钮也不会在 div 内呈现【英文标题】:Extjs button not rendered inside of div even after using renderTo 【发布时间】:2021-11-23 21:45:34 【问题描述】:

我目前有一个返回 html div 元素的函数。我想在 div 元素中添加一个 Extjs 按钮。我有如下代码,但是即使我使用 renderTo,Extjs 按钮也不会在 div 元素内呈现。对此有何建议?

_getEmptyPageText:function()
     emptyCreateText = some text; 
     return '<div class="some class">' + 
     '<div class="some div">' + emptyCreateText + ' </div>' ;
     '<div class="some div2">'+ '</div>' + '</div>' ;
,

getCreateButton: function() 
    var me = this;
    var menu;
    menu = 
        xtype: 'button',
        cls: 'ri-btn',
        renderTo: Ext.get('some div2'),
        scale: 'medium',
        text: 'Create',
        handler: function() 
            me.someHandler();
        
    ;
    return menu;
,

在函数之外和controller.js 文件中,我按以下顺序调用函数:

_getEmptyPageText(); 
getCreateButton(); 

但是,这样做只会渲染存在于 _getEmptyPageText() 内部的 div 元素,但不会渲染 getCreateButton 函数内部的代码。我在这里错过了什么?

【问题讨论】:

【参考方案1】:

使用Ext.dom.Query.select('.div2') 而不是Ext.get

在使用 renderTo 之前,您必须确保您的 div 已渲染

下一个例子是 ExtJS 5.0+ https://fiddle.sencha.com/#view/editor&fiddle/3hga

【讨论】:

以上是关于即使在使用 renderTo 之后,Extjs 按钮也不会在 div 内呈现的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 面板。键盘事件

ExtJS 面板使用 contentEl 自动调整大小

extjs的panel组件怎么使用

如何使用 ExtJS 销毁对象的所有实例?

ExtJS - 更新 DIV 后无法再次渲染窗口

如何在 Extjs 4 标签上添加点击事件