我需要在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中是否可行?
答案 0 :(得分:1)
这在ExtJS中是否可行?
这里没有任何魔力......在简单的旧html和css
之下 Ext.panel.Panel
(任何ext组件及其后代)都没有appendChild
方法。
DOMElement appendChild method的Ext.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());
}
}
});