• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
向阳光大道勇猛前进吧,了解但不走偏门!
            管理     

简单模板引擎

 

描述:

1.模板字符串

2.模板解析(字符串替换)

3.将第二步返回值显示屏幕 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div class="result"></div>

<script type="template" id="template">
    <a href="{{href}}">{{title}}</a>
</script>


<script>
    var data = [
        {
            title: "Knockout应用开发指南",
            href: "#",
            imgSrc: "#"
        },
        {
            title: "微软ASP.NET站点部署指南",
            href: "#",
            imgSrc: "#"
        },
        {
            title: "HTML5学习笔记简明版",
            href: "#",
            imgSrc: "#"
        }
    ];

       var  result = document.querySelector('.result'),       

       for ( let i = 0; i < data.length; i++ ) {
           var fragment = '';
           fragment += template
            .replace( /\{\{title\}\}/, data[i].title )
            .replace( /\{\{href\}\}/, data[i].href )
            .replace( /\{\{imgSrc\}\}/, data[i].imgSrc );
    }

    result.innerHTML = fragment;
</script>
</body>
</html>

  

http://www.cnblogs.com/TomXu/archive/2011/12/15/2284752.html

效果图:

 

更多详细模板:http://handlebarsjs.com/

 

 

 

例二:



?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!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>

  

https://www.cnblogs.com/dolphinX/p/3489269.html

效果图:

 

圣凡无二路,方便有多门。
posted @ 2018-07-12 14:41  优昙陀罗  阅读(109)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3