ExtJS Ext.panel.body未定义.为什么
ExtJS Ext.panel.body is undefined.. Why?
我创建了一个有几个选项卡的选项卡面板,当我尝试实现甘特图(需要dom创建)时,我一直看到面板。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();
如果没有完整的运行示例(我知道可能很难生成),并且不知道是哪个版本,我的最佳猜测是您试图在面板实际呈现之前访问body 。在3。我们在ExtJS源代码中使用以下行设置面板的主体:
this.body = cp.down('.'+this.bodyCls);
这段代码来自于onRender方法。也许你正试图从构造函数或initComponent中访问面板的主体,这还为时过早。尝试在afterRender中这样做(以上所有内容都基于您正在创建自定义小部件的假设)
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么localStorage[“..”]未定义,而localStorage.getItem(“..”)为null
- 解析-为什么user.getSessionToken()返回未定义的结果
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- 为什么这个JS代码打印未定义
- 为什么innerHTML返回“未定义”
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- 为什么我看到“;类型错误:游标未定义“;当使用indexedDB时
- 为什么分配给“NaN”或“未定义”会导致类型错误
- 类型错误:无法读取未定义的属性“toString” - 为什么
- 自定义函数返回正确的结果,并且未定义.为什么
- 函数值/名称的类型值日志为“未定义”.为什么
- Javascript:什么等于未定义?为什么不't myVar==未定义的工作
- Javascript数组并将它们赋值给变量,但第一个值为未定义.为什么
- ExtJS Ext.panel.body未定义.为什么
- Javascript:数组
- 无法访问现有节点包的属性,因为它是'未定义'为什么