如何在ExtJS中向Panel添加DOM节点

时间:2014-07-08 16:07:57

标签: extjs extjs4

我需要在ExtJS应用程序中嵌入遗留的JavaScript代码。我们的应用程序将使用ExtJS对话框显示旧的javasccript表单(在我们最终在ExtJS中重做它们之前)。

我正在尝试将DOM节点添加到 Ext.Panel (或 Ext.window.Window )。不确定它是否可能或有什么方法。我需要某种 appendChild 方法,如下所示:

var mainPanel = document.create('div');

mainPanel.appendChild(getVeryComplicatedLegacyHTML())


var p =  new Ext.Panel({
     title: 'another panel',
     titleCollapse: true
});

p.appendChild(mainPanel ); //???

这在ExtJS中是否可行?

1 个答案:

答案 0 :(得分:1)

  

这在ExtJS中是否可行?

这里没有任何魔力......在简单的旧html和css

之下

Ext.panel.Panel(任何ext组件及其后代)都没有appendChild方法。 DOMElement appendChild methodExt.dom.Element包装器和任何组件都有el / getEl()的元素引用。

简单的例子,在面板中创建一个带有旧版html的辅助组件。 渲染面板后,使用update()方法(使用this.el.update() element method inside)将旧版html注入到组件内部:

var p = new Ext.Panel({
     title: 'another panel',
     titleCollapse: true,
     items: [
     {
         xtype: 'box',
         itemId: 'fake-cmp'
     }],
     listeners: {
         boxready: function(panel) {
             var fakeCmp = panel.down('#fake-cmp');
             fakeCmp.update(getVeryComplicatedLegacyHTML());
         } 
     }
});    

ExtJS