我的业务需求是有两个功能的页面差不多,我就融合成了一个页面,用if判断,这个页面是jquery 的Load方法进去的,里面的页面用到了artTemplate模板,由于页面是jsp页面,所以在script模板中加入了java的判断,但是在两个页面切换时,if判断没有起到作用,即第一次点第一个功能的页面时切换到第二个功能还是第一个功能的页面。后来知道此问题是由于artTemplate模板的缓存引起的,加入template.config("cache",false)即可解决由load 页面而引起的模板缓存问题。
由于代码较多,所以只贴出了部分代码
layout.loadRight({url: "../courseSchedule/courseSchedule.jsp",data:{arrangeObj:"class",arrangeWay:arrangeWay},onload: function () {
rightSwitchInit(6,0);
}});
此方法是JQuery的load方法载入jsp页面。
第二个页面中script模板中部分代码
<script id="classTpl" type="text/html">
{{each list}}
<%
if(arrangeWay.equals("regular")){
%>
<!-- 周期的开始时间和预计结束时间-->
<td width="200" class="plr-10 cur lab-lh40">
<span οnclick="showRiqiInput(this)" class=" f-blue fl_l" id="startDate{{$index}}">起始日期</span>
<font class="fl_l f-gray plr-5">→</font>
<span class=" f-blue fl_l" id="endDate">等待计算</span>
</td>
<!-- 排课周期-->
<td width="220" class="plr-10 cur lab-lh40" οnclick="timeWindow('{{$index}}');">
<span class=" f-blue fl_l" id="cycleWeekText{{$index}}">选时段</span>
<img οnclick="classTimeTableShow(event,'{{$value.classPeriodId}}');" class="cur fl_r pt-10" title="查看及修改排课" alt="查看及修改排课" src="../../../styles/sky/2/img/cha.png">
</td>
<!-- 排课次数-->
<td width="130" οnclick="$('#cishu').show();" class="plr-10 cur ipt-w-c" style="border:none"><input type="text" readonly class="f-blue fl_l ipt-text" id="courseCount{{$index}}" value="选次数" οnclick="numberWidget('{{$index}}');"/></td>
<%}else{%>
<td width="430" οnclick="" class="plr-10 cur lab-lh40"><span class=" f-blue fl_l">选时间</span></td>
<td width="130" class="plr-10"><span class="f-blue fl_l">计算次数</span></td>
<%}%>
{{/each}}
</script>
在渲染artTemplate模板中设置缓存为false即可以下为渲染的js代码
template.config("cache",false);
var data = {"list":scheduleData};
var htm = template("classTpl",data);
$("#scheduleTitle").after(htm);