亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

template.js前端模板引擎使用詳解

2019-11-19 15:12:18
字體:
來源:轉載
供稿:網友

本文介紹了template.js前端模板引擎使用,分享給大家,具體如下:

下載地址:https://github.com/yanhaijing/template.js

作者編寫的文檔:https://github.com/yanhaijing/template.js/blob/master/README.md

源碼學習

默認的開始標簽和結束標簽分別是:

  1. sTag: '<%',//開始標簽,可以重寫,我項目中使用的是<:
  2. eTag: '%>',//結束標簽,我項目中使用的是:>

快速上手

編寫模板

使用一個type=”text/html”的script標簽存放模板,或者放到字符串中:

<script id="tpl" type="text/html"><ul>  <%for(var i = 0; i < list.length; i++) {%>  <li><%:=list[i].name%></li>  <%}%></ul></script>

渲染模板

var tpl = document.getElementById('tpl').innerHTML;template(tpl, {list: [{name: "yan"},{name: "haijing"}]});

輸出:

<ul>  <li>yan</li>  <li>haijing</li></ul>

轉義

<script id="tpl" type="text/html">  <table>    <caption>for循環輸出兩次</caption>    <%var test = '輸出自定義變量';%>    <%for (var i = 0; i < 2; i++) {%>      <tr><td><%=html%>默認</td><td><%=html%></td></tr>      <tr><td><%:h=html>html轉義</td><td><%:h=html%></td></tr>      <tr><td><%:=html>不轉義</td><td><%:=html%></td></tr>      <tr><td><%:u=url>URI轉義</td><td><%:u=url%></td></tr>      <tr><td>var</td><td><%:=test%></td></tr>      <tr><td><%=test + 1>表達式</td><td><%=test + 1%></td></tr>      <%if (true) {%>        <tr><td>if</td><td>if 語句</td></tr>      <%}%>      <tr><td>分割線</td><td>------------------------------</td></tr>    <%}%>  </table>  </script>  <script src="../template.js"></script>  <script>  var html = template(document.getElementById('tpl').innerHTML, {    url: 'http://yanhaijing.com?name=顏海鏡',     html: '<div id="test">template.js "</div>'  });  console.log(html);  document.getElementById('wp').innerHTML = html;  </script>
<script>  template.config({sTag: '<#', eTag: '#>'});  var tpl1 = '<div><#:=name#></div>';  console.log('<##>:', template(tpl1, {name: '更改tag<##>'}));  template.config({sTag: '{{', eTag: '}}'});  var tpl1 = '<div>{{:=name}}</div>';  console.log('{{}}:', template(tpl1, {name: '更改tag{{}}'}));  template.config({sTag: '<%', eTag: '#>'});  var tpl1 = '<div><%:=name#></div>';  console.log('<%#>:', template(tpl1, {name: '不一致也可以哦,更改tag<%#>'}));   template.config({sTag: '<%', eTag: '%>', compress: true});  var tpl1 = '<div>空格會被壓縮 空格 空格</div>';  console.log('compress:', template(tpl1, {}));    template.config({sTag: '<%', eTag: '%>', escape: false});  var tpl1 = '<div>默認輸出不進行轉義<%=html%></div>';  console.log('escape:', template(tpl1, {html: '<div>html</div>'}));  </script>

注冊函數

<div id="wp"></div>  <script id="tpl" type="text/html">  <%=dateFormat(Date.now(), 'yyyy年 MM月 dd日 hh:mm:ss')%>  </script>  <script src="../template.js"></script>  <script>    template.registerFunction('dateFormat', function (date, format) {      date = new Date(date);      var map = {        "M": date.getMonth() + 1, //月份         "d": date.getDate(), //日         "h": date.getHours(), //小時         "m": date.getMinutes(), //分         "s": date.getSeconds(), //秒         "q": Math.floor((date.getMonth() + 3) / 3), //季度         "S": date.getMilliseconds() //毫秒       };      format = format.replace(/([yMdhmsqS])+/g, function(all, t){        var v = map[t];        if(v !== undefined){          if(all.length > 1){            v = '0' + v;            v = v.substr(v.length-2);          }          return v;        }        else if(t === 'y'){          return (date.getFullYear() + '').substr(4 - all.length);        }        return all;      });      return format;    });    console.log(template.registerFunction());    console.log(template.registerFunction('dateFormat'));  </script>  <script>  var html = template(document.getElementById('tpl').innerHTML, {});  console.log(html);  document.getElementById('wp').innerHTML = html;  template.unregisterFunction('dateFormat');  console.log(template.registerFunction('dateFormat'));  </script> <div id="wp"></div>  <script id="tpl" type="text/html">  <%:up='yanhaijing'%>  </script>  <script src="../template.js"></script>  <script>    template.registerModifier('up', function (str) {      return str.toUpperCase();    });    console.log(template.registerModifier());    console.log(template.registerModifier('up'));  </script>  <script>  var html = template(document.getElementById('tpl').innerHTML, {});  console.log(html);  document.getElementById('wp').innerHTML = html;  template.unregisterModifier('up');  console.log(template.registerModifier('up'));  </script>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩亚洲一区二| 欧美黑人国产人伦爽爽爽| 久久精品91久久久久久再现| 中文字幕亚洲欧美日韩高清| 自拍偷拍亚洲精品| 亚洲欧洲在线免费| 中文字幕亚洲欧美| 亚洲美女性视频| 亚洲精品自产拍| 亚洲综合中文字幕68页| 午夜精品久久久久久久男人的天堂| 国产a级全部精品| 日韩一区在线视频| 亚洲精品女av网站| 亚洲欧美精品一区二区| 亚洲第一中文字幕在线观看| 国产精品偷伦视频免费观看国产| 日韩免费在线视频| 亚洲国产精品久久久久秋霞不卡| 亚洲xxxxx| 亚洲区免费影片| 国产精品日韩一区| 日韩美女在线观看一区| 中文精品99久久国产香蕉| 国产在线观看精品一区二区三区| 丰满岳妇乱一区二区三区| 国产美女精品视频免费观看| 最近2019年日本中文免费字幕| 欧美另类高清videos| 日韩在线不卡视频| 日韩欧美第一页| 国产91精品网站| 亚洲毛片在线免费观看| 97色在线观看| 中文字幕综合一区| 韩日精品中文字幕| 亚洲欧美国产精品久久久久久久| 国产成人精品免费久久久久| 538国产精品一区二区在线| 亚洲精品久久久久| 777777777亚洲妇女| 最近更新的2019中文字幕| 91爱视频在线| 久久91超碰青草是什么| 成人在线视频网| 欧美精品在线观看| 日本三级久久久| 日韩一区在线视频| 91精品国产乱码久久久久久久久| 欧美日韩一区免费| 亚洲成人黄色在线| 久久91精品国产91久久久| 北条麻妃一区二区三区中文字幕| 久久久久久久久久av| 日韩高清电影免费观看完整| 成人春色激情网| 国产精品成av人在线视午夜片| 亚洲人成在线播放| 久久天天躁狠狠躁老女人| 26uuu亚洲伊人春色| 精品国产成人av| 九九精品在线播放| 久久亚洲国产精品成人av秋霞| 亚洲欧洲在线免费| 久久亚洲国产成人| 欧美高清自拍一区| 国产伊人精品在线| 国产在线精品自拍| 国产精品美女主播在线观看纯欲| 国内外成人免费激情在线视频| 亚洲一区中文字幕在线观看| 国产97在线播放| 91久久久久久久一区二区| 成人黄色午夜影院| 日本人成精品视频在线| 欧美麻豆久久久久久中文| 亚洲第一男人天堂| 91精品国产电影| 亚洲福利视频网站| 亚洲成人国产精品| 日韩激情av在线播放| 黄色成人av网| 欧美丰满少妇xxxxx| 欧日韩不卡在线视频| 国产成人精品国内自产拍免费看| 91精品在线播放| 上原亚衣av一区二区三区| 91久久精品日日躁夜夜躁国产| 欧美精品18videosex性欧美| 亚洲成人动漫在线播放| 亚洲欧美一区二区三区情侣bbw| 国产欧美日韩最新| 在线播放国产精品| 久久影院免费观看| 中文字幕久热精品视频在线| 成人免费在线网址| 日韩一区二区欧美| 欧美日韩人人澡狠狠躁视频| 欧美中文字幕在线| 久99九色视频在线观看| 韩国19禁主播vip福利视频| 成人激情黄色网| 亚洲福利影片在线| 精品成人国产在线观看男人呻吟| 岛国av在线不卡| 亚洲人精选亚洲人成在线| 亚洲精品一区二三区不卡| 成人午夜黄色影院| 久久成人免费视频| 51久久精品夜色国产麻豆| 国产色综合天天综合网| 国产精品成人免费视频| 亚洲人成电影网站色…| 欧美激情免费观看| 成人在线一区二区| 精品国产一区二区三区久久久狼| 欧美成人免费在线视频| 中文字幕一精品亚洲无线一区| 欧美精品www在线观看| www日韩欧美| 日韩成人中文字幕在线观看| 2019中文字幕在线免费观看| 欧洲成人在线观看| 欧美在线视频在线播放完整版免费观看| 久久亚洲精品毛片| 亚洲欧美精品一区| 久久久久久久久久久久av| 亚洲欧美制服中文字幕| 国产91网红主播在线观看| 成人黄色免费网站在线观看| 视频在线观看99| 亚洲最大成人在线| 色哟哟网站入口亚洲精品| 日本一区二区三区在线播放| 亚洲精品资源在线| 97视频在线观看免费高清完整版在线观看| 欧美色另类天堂2015| 亚洲精品一区中文字幕乱码| 欧美乱大交做爰xxxⅹ性3| 欧美大学生性色视频| 精品久久香蕉国产线看观看亚洲| 国产精品三级久久久久久电影| 久久久久国产精品一区| 欧美精品一区在线播放| 国产欧美日韩综合精品| 亚洲美女在线观看| 国产91热爆ts人妖在线| 国产91精品青草社区| 亚洲欧洲午夜一线一品| 欧美与欧洲交xxxx免费观看| 日韩av高清不卡| 成人国产精品免费视频| 精品国产一区二区三区久久| 亚洲成人av片| 亚洲最大福利视频网| 欧美性视频精品| 亚洲午夜精品久久久久久久久久久久| 国产精品亚洲欧美导航| 51色欧美片视频在线观看| 亚洲www在线| 亚洲黄色成人网| 精品少妇一区二区30p| 日韩电影在线观看中文字幕| 国产精品日韩欧美|