javascript - ExtJS Ext.panel.body 未定义.. 为什么?

标签 javascript extjs panel undefined

我创建了一个带有几个选项卡的选项卡面板,当我尝试实现甘特图(需要 dom 来创建)时,我一直看到 panel.body 是未定义的,即使我向面板添加了一些东西......

...},{
title: "Descriptions View",
id: 'dviewTab',
iconCls: 'icon-desc',
autoWidth: true,
forceLayout: true,
header: false,
xtype: 'panel',
items: [ {xtype: 'textfield', value: 'testing'} ] // so we have something in the 'body'
},{....}

然后在创建面板后我做

    var uiPanel = Ext.getCmp('dviewTab');
    if (uiPanel.body)
    {
       // never gets here :(
    } // if
    else
    {
        this.logger("uiPanel.body is undefined.... WHY??");
    }

我可以在 firebug 中看到面板,看起来应该是这样,但我没有看到 body 字段,如果这与面板的“元素”值相关,则面板的“元素”值为“body”。 我不明白为什么它是未定义的,请帮忙。

最佳答案

您需要等到面板渲染完成。

var myPanel = new Ext.Panel({});
console.log("`myPanel.body` is "+myPanel.body); // "`myPanel.body` is undefined"

myPanel.on('render', function() {
    console.log("`myPanel.body` is "+myPanel.body); // "`myPanel.body` is [object Object]"
});

var container = Ext.getCmp("ext-comp-123");
container.add(myPanel);
container.doLayout();

关于javascript - ExtJS Ext.panel.body 未定义.. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478191/

相关文章:

javascript - Google Maps API V3 - 在创建标记后添加监听器

extjs - 无法将过滤器重新应用到网格

c# - 无法动态地将用户控件添加到面板

c# - 仅当类型为 T 时才从 Panel 中删除 child

javascript - onMouseLeave 和 onMouseOut 激活得太快;

jsf - 更新后 Primefaces 5 overlayPanel 损坏

javascript - 未捕获的 TypeError : _moment2. default.date 不是 React 应用程序中的函数

javascript - Google Maps API 获取 map 比例尺控制值

javascript - Writable Stream清空文件但不写入nodeJS中预期的内容

javascript - 在 ExtJS 表单中,如何禁止仅对 textarea 字段进行输入提交?