码迷,mamicode.com
首页 > 其他好文 > 详细

模板引擎

时间:2018-07-12 14:37:48      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:var   ret   element   rip   div   size   type   template   document   

 

 

 

 

/*
1.模板
2.解析,替换字符串

JavaScript模版引擎就是字符串替换,剥离出JavaScript语句,然后利用新的字符串构造函数,返回结果。
*/

<!DOCTYPE html>
<html>
<head>
    <title>Template</title>
</head>
<body>
<div id="results"></div>
<script type="text/html" id="user_tmpl">
<ul>
    <% for ( var i = 0; i < users.length; i++ ) { %>
    <li><a href="<%=users[i].url%>"><%=users[i].name%></a></li>
    <% } %>
</ul>
</script>

<script>
var results = document.getElementById("results");
var users=[
    {"name":"smile", "url":"http://localhost"},
    {"name":"Amy", "url":"http://localhost"},
    {"name":"JavaScript", "url":"http://localhost"}
];

//模板解析
function tmpl(id,data){                //data:JSON对象。
    var html=document.getElementById(id).innerHTML;
    var result="var p=[];with(obj){p.push(‘"
        +html.replace(/[\r\n\t]/g," ")
            .replace(/<%=(.*?)%>/g,"‘);p.push($1);p.push(‘")
            .replace(/<%/g,"‘);")
            .replace(/%>/g,"p.push(‘")
        +"‘);}return p.join(‘‘);";
    var fn=new Function("obj",result);
    return fn(data);
}

    results.innerHTML = tmpl("user_tmpl", users);
</script>
</body>
</html>

  

效果图:

技术分享图片

 

模板引擎

标签:var   ret   element   rip   div   size   type   template   document   

原文地址:https://www.cnblogs.com/Longhua-0/p/9299189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!