我想通过点击一个按钮添加一个新的div标签,但它不起作用。 我有一个来自extjs的web桌面和两个模块。一个窗口,如下面的代码,1 div [20,20]。第二个窗口带有一个按钮和处理程序,用于在第一个窗口中添加新的div标签。但它不起作用。
win = desktop.createWindow({
id: 'firstwindow',
title: 'firstwindow',
width: 421,
height: 391,
divs: [{
x: 20,
y: 20
}],
依旧......
这里是通过单击第二个窗口中的按钮
在第一个窗口中添加div的代码 handler: function(){
if (Ext.getCmp('firstwindow')) {
Ext.getCmp('firstwindow').add({
divs: [{
x: 20,
y: 40
}]
})
Ext.getCmp('firstwindow').render();
console.log(Ext.getCmp('firstwindow'));
}
}
提前致谢, 干杯, 托马斯
答案 0 :(得分:1)
您正在使用的add方法用于将ExtJs组件添加到容器中(在您的情况下是其Window)。您无法使用add方法创建DIV标记。
在ExtJS中,您可以创建一个组件并将其添加到容器中。如果需要修改DOM,则必须更新el属性。默认情况下,在ExtJS中它是一个DIV标记。您可以通过autoEl config覆盖它。
可能的解决方案:
现在,如果要重复创建包含某些内容并动态呈现的DIV标记,可以使用DataView的帮助。使用您的DIV及其子项创建模板..将数据加载到商店中,最后在窗口中呈现它们或更新DataView。
答案 1 :(得分:0)
我认为你必须使用Ext.getCmp('firstwindow')。doLayout()而不是Ext.getCmp('firstwindow')。render()