基本说明
在开发中如果某块数据需要在多个地方使用(比如一个很长的段落或者是有格式的字符串)那么可以考虑使用简单模板。
因为某块数据在多个地方都要用到,势必需要把这份数据拷贝多次,而这样会造成冗余度过高的问题,且不方便维护。
假如后期需要对这块数据进行修改,那么所有用到的地方都要进行修改比较麻烦,因此建议使用模板来处理。
相关的代码示例:
<script type="text/template" class="test">
听说白雪公主在逃跑 小红帽在担心大灰狼
听说疯帽喜欢爱丽丝 丑小鸭会变成白天鹅
听说彼得潘总长不大 杰克他有竖琴和魔法
听说森林里有糖果屋 灰姑娘丢了心爱的玻璃鞋
只有睿智的河水知道 白雪是因为贪玩跑出了城堡
</script>
<script>
//01 获取模板中的内容
var oScript = document.getElementsByClassName("test")[0];
var oString = oScript.innerText;
</script>
模板框架的使用
1)有的时候模板中的内容结构是相同的,但是具体的细节可能并不一样,这时候需要对模板进行传参处理。
2)使用示例:
001 下载模板框架(github上面搜索模板引擎)
002 在页面中包含必要的js文件:<script src="dist/template-native.js"></script>
003 提供并设置模板:
<script id="demo" type="text/html">
<h1><%=title%></h1>
<ul>
<% for(var i = 0, len = list.length; i < len; i++){ %>
<li><%=list[i]%></li>
<% } %>
</ul>
</script>
004 调用template方法传递参数并获取模板的内容
<script>
var data = {
title: '基本例子',
list: ['文艺1', '博客2', '摄影3', '电影4', '民谣5', '旅行6', '吉他7']
};
var html = template('demo', data);
document.body.innerHTML = html;
</script>
微博项目中使用模板框架
001 包含模板引擎文件
<script src="dist/template-native.js"></script>
002 提供并设置模板的内容(注意需要设置id标识)
<script id="demo" type="text/html">
<p class="replyContent"><%=content%></p>
<p class="operation">
<span class="replyTime"><%=time%></span>
<span class="handle">
<a href="javascript:;" class="top"><%=acc%></a>
<a href="javascript:;" class="down_icon"><%=ref%></a>
<a href="javascript:;" class="cut">删除</a>
</span>
</p>
</script>
003 调用方法并传递参数,获取模板的内容
var div = $("<div></div>");
div.addClass("reply"); // 设置每条微博样式
var temp = template("deno", obj);
div.html(temp);// 给微博写入内容