一般我们在使用layer.open时是不经过后台处理,意思就是说没有通过服务器,直接加载html页面的,这是我们好多封装的js引用,列如{% 内容%}这种模板无法使用,所以这个问题困扰了我一天半的时间还是无法解决,最后通过一位js大神帮忙解决了,此问题。
<style>
.input-content{
display:inline-block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
</style>
<div id="form-container" class="sb-container">
<div class="matter-container" style="min-height: auto">
<div class="table-bgtx">
<div id="form_list"></div>
</div>
</div>
</div>
<script type="text/javascript">
var formInfoLoadDef = $.Deferred();
$(function () {
//清空模板域
$("#script-tpls").html("");
//定义配置
var files = ["formListTemplate.html", "selLinkItemTemplate.html"], defPool = [];
//遍历请求文件
files.forEach(function (file) {
//调用接口获取文件信息
var ddf = $.ajax({
url: file + "?v=" + Date.now(),
dataType: "html",
success: function (text) {
$("#script-tpls").append(text);
}
})
defPool.push(ddf);
})
$.when.apply(this, defPool).done(formInfoLoadDef.resolve);
})
//获取表单UI
function setFormId(formId) {
formInfoLoadDef.done(function () {
if(formId!=null){
formExt.loadFormByFormId("#form_list", formId);
}
});
}
</script>