环境:
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)

本文探讨了在项目中使用EasyUI中的dialog组件遇到的缓存问题,特别是当cache属性设置为false时仍无法发起服务端请求的情况。通过深入分析,作者发现问题是由于执行顺序导致的EasyUI与jQuery之间的冲突。文中提供了通过监听dialog打开事件并使用refresh方法解决此问题的方法。
9598

被折叠的 条评论
为什么被折叠?



