doTjs 使用doT.template(templ)(data)渲染后,无法再次渲染?

这是一个doT.js的问题,请看以下问题描述:
我的html是这样的

<button onclick="test()"></button>
<div id="showContent">
    <script id="js_templ" type="text/x-dot-template">
        <div>{{=it.testValue}}</div>
    </script>
</div>

js:

function test(){
    var tmpl = $("#js_templ").html();
    var strhmtl = doT.template(tmpl)({testValue:"测试数值"});
    $("#showContent").html(strhmtl);
}

第一次运行test()是正常的的,可以渲染,$("#js_templ").html()可以取到值,但是第二次点击test()按钮是就报错,错误是$("#js_templ").html()为undefined,这个值找不到了,我猜想的原因是在内存中这个 <script id="js_templ" type="text/x-dot-template"></script>节点已经在第一次运行时替换掉了,所以取不到值,但是我想做的事是每次点test()都能正常渲染,该怎么办!????

阅读 2.8k
1 个回答

把模板 从 div标签 独立出来 也就是这样

<button onclick="test()"></button>
<div id="showContent"></div>

<script id="js_templ" type="text/x-dot-template">
    <div>{{=it.testValue}}</div>
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题