容易的js模板
简单的js模板
简单的js模板实现,不支持for循环和if判断哪些
<!doctype html> <html> <head> <meta charset=utf-8> <title>Simple Templating</title> </head> <body> <div id="content" style="border:1px solid red;"></div> <script type="template" id="template"> <h2> <a href="{{href}}"> {{title}} </a> </h2> <img src="{{imgSrc}}" alt="{{title}}"> </script> <script type="text/javascript"> var data = [ { title : 'php web appliaction', href : 'http://www.baidu.com', imgSrc : 'http://www.baidu.com' }, { title : 'js 权威指南', href : 'http://www.qq.com', imgSrc : 'http://www.qq.com' }]; var template = document.querySelector('#template').innerHTML; function _template(template, data){ var i = 0, len = data.length, fragment = ''; function replace(obj){ var t, key, reg; for(key in obj){ reg = new RegExp('{{' + key + '}}', 'ig'); t = (t || template).replace(reg, obj[key]); } return t; } for(; i < len; i++){ fragment += replace(data[i]); } return fragment; } console.log(_template(template, data)); document.querySelector("#content").innerHTML=_template(template, data); </script> </body> </html>
自己业务使用改进了下
/模板方法 function _temp(template, data){ var i = 0, fragment = ''; function status(v){ var str =v ; if(v==0){ str="审批不通过"; }else if(v==1){ str="审批中"; }else if(v==2){ str="放款成功"; }else if(v==3){ str="放款失败"; }else if(v==4){ str="支付成功"; }else if(v==5){ str="支付失败"; }else if(v==6){ str="已受理"; } return str; } function replace(obj){ var t, key, reg,v; for(key in obj){ reg = new RegExp('{{' + key + '}}', 'ig'); if(key=="STATUS"){ v=status(obj[key]); }else if(key=='LOAN_DATE'){ v=new Date(obj[key]).format("yyyy-MM-dd hh:mm:ss"); }else if(key=='LOAN_EXPIRE'){ v=new Date(obj[key]).format("yyyy-MM-dd"); }else{ v=obj[key]; } t = (t || template).replace(reg, v); } return t; } fragment += replace(data); return fragment; }