我收到错误:"Uncaught TypeError:无法读取属性'addCls'的null"在以下方案中.
我需要两个模态窗口.第一个模态窗口有一个Grid.当我在第一个模态窗口中双击网格时,我应该打开第二个模态窗口.以下是我使用的代码:
saleOrderEmployeeGrid.on('celldblclick', function(tableview, td, cellIndex, record, tr, rowIndex, e, eOpts){
loadActivityWindow();
});
}
function loadActivityWindow()
{
jobSlotActivityWin = new Ext.Window({
id :'jobSlotActivityWinId',
modal : true,
layout : 'fit',
width : 900,
height : 500,
closeAction :'destroy',
plain : true,
model : true,
stateful : false,
title :'Create Job Slot',
items : [soActivityPanel],
buttons : [{
text : 'Close',
handler : function(){
jobSlotActivityWin.destroy();
}
}
]
});
jobSlotActivityWin.show();
Ext.WindowManager.register (createJobSlotWin); // createJobSlotWin is the first modal window
Ext.WindowManager.register(jobSlotActivityWin); // jobSlotActivityWin is the second modal window created above
Ext.WindowManager.bringToFront ('jobSlotActivityWinId');
}
Run Code Online (Sandbox Code Playgroud)
所以,当我双击saleOrderEmployeeGrid时,我看到第二个模态窗口很好.然后我关闭第二个模态窗口并在第一个模态窗口上再次双击网格.
这现在没有调出第二个模态窗口.它在第一个模态窗口的背景中完全被掩盖并且空白,我在JavaScript控制台中看到以下错误:未捕获TypeError:无法读取null的属性'addCls'
更准确地说,错误似乎来自jobSlotActivityWin.show(),因为我的调试日志在那时失败了.
以前有人面对这个并且可以帮助我吗?
将closeAction设置为隐藏,不确定为什么默认值是destroy,但它本质上意味着当窗口关闭时元素将从dom中删除而show
不再起作用.
http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.panel.Panel-cfg-closeAction
回复评论:
条件创建示例
//the window is only created once, the data is always show and updated.
if(!this.win) {
this.win = createWindow();
}
updateWindowData();
this.win.show();
Run Code Online (Sandbox Code Playgroud)
而不是说closeAction:'hide'到处都是,我们的源代码中有这样的东西
Ext.override(Ext.Window, {
closeAction: 'hide'
})
Run Code Online (Sandbox Code Playgroud)
如果您在创建任何窗口之前放置该片段,则默认情况下所有窗口都将为closeAction hide.