ecomfe / etpl

ETPL是一个强复用、灵活、高性能的JavaScript模板引擎,适用于浏览器端或Node环境中视图的生成。
http://ecomfe.github.io/etpl/
BSD 3-Clause "New" or "Revised" License
496 stars 96 forks source link

是不是需要专门一个地方保存引擎模板? #45

Closed ywss closed 9 years ago

ywss commented 9 years ago

我的意思是这样的,在页面上有两块区域,一个是隐藏的,写模板,一个是填充数据,如下 <div id="template"> // 模板写在这里 </div>

<div id="result"> // 把结果插入到这里 </div>

是不是每个页面都至少需要这么两块地方?

假设合并成一块,那么第一次 compile 没问题,第二次 compile就不行了,因为已经没有模板了(被数据填充了)?

<div id="templateANDresult"> // 第一次模板写在这里,如果把结果也插入到这里,那么模板就没了。 </div>

不知道 eptl 是不是那个缓存是不是解决这种问题的?

errorrik commented 9 years ago

通常有两种方法

  1. 你可以保存成独立文件,然后通过xhr去取
  2. 页面上写一个script标签,通过dom api读内容(当然,你也可以不用script,换用display:none的textarea或者其他方式)
<script id="tpl-container" type="text/html">
</script>
<script>
var render = etpl.compile(document.getElementById('tpl-container').text);
render(data);
</script>