环境:
?
easyui 1.2.4
jQuery 1.6.4
chrome
?
问题:
?
做项目中使用到easyui中的dialog,发现他的cache属性即使设置为false仍然还是不会发起服务端请求。
?
排查原因:
?
网上搜了下,无果,但搜到一个帖子
?
?
Mark ,easyUi缓存问题是执行顺序,('#dialog').html(data)先,再实例化('#dialog').dialog,而juqery dialog不会破坏#dialog'标签,easyUI会破坏标签,所以存在缓存问题
但是实在看不懂如何解决.
?
在调试中发现,使用easyui的dialog事件后你的dialog控件会“不见”,也就是下面代码中的#yourDialog整个DOM节点不见,easyui帮你自动生成一个。可能就是这里出问题。
?
?
<div style="display:none"> <!-- 你的dialog控件--> <div id="#yourDialog" title="xxx"></div> </div>
?
解决方法:
?
不想修改源码,想了想,可以通过以下方法解决:
?
?
$('#yourDialog').dialog({ modal:true, iconCls:"icon-add", buttons:[{ text:'提交', iconCls:'icon-ok', handler:function(){ submitForm(appId, false); } },{ text:'关闭', handler:function(){ $('#yourDialog').dialog('close'); } }], onOpen:function(){ $('#createAppVersionDialog').dialog('refresh', 'yourUrl'); } });
初始不提供href参数,监听onOpen事件,使用refresh参数使dialog读取服务端数据(refresh是panel的method)
?