主要内容

js模板简单说明

基本说明

在开发中如果某块数据需要在多个地方使用(比如一个很长的段落或者是有格式的字符串)那么可以考虑使用简单模板。
因为某块数据在多个地方都要用到,势必需要把这份数据拷贝多次,而这样会造成冗余度过高的问题,且不方便维护。
假如后期需要对这块数据进行修改,那么所有用到的地方都要进行修改比较麻烦,因此建议使用模板来处理。

相关的代码示例:

    <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);// 给微博写入内容