我的模板系統升一下級, 繼續在新公司里面用。 現在幾在互聯網公司沒有不用javascript模板了, 什么TX, 百度, 新浪, 360什么的, 最后瀑布流的流行, 里面又有許多用到模板。
本版本就是改回v6的形態,后端數據還是帶@前端才方便查看與調試。昨天也與一TX前端工程師討論過這個必要性。取得模板中的需要填寫的變量,再與后端傳過來的JSON進行比較,盡早進行數據驗證。這種技術,可以看一看PHP的變量命名就知了,帶是帶$前綴。
在之前的版本中,如果輸出語句帶分號或逗號是會報錯的
<script type="tmpl" id="table_tmpl"> <table> <& for(var i=0,tl = @trs.length,tr;i<tl;i++){ &> <& tr = @trs[i]; &> <tr> <td><&= tr.name; &></td> <td><&= tr.age; &></td> <td><&= tr.sex || "男" &></td> </tr> <& } &> </table> <&# 怎么可能不支持圖片 &> <img src="<&= @href &>"> </script>
因為內部生成的字符串是這個樣子的:
__views(data.tr.name;)
為了防止用戶順手把個逗號或分號上去,本版本自動幫你處理了.
rlastSemi = /[,;]\s*$/ // 略 case "="://處理后台返回的變量(輸出到頁面的); logic = els[0].substring(1); if(logic.indexOf("@")!==-1){ temp.push( startOfHTML, logic.replace(rAt,"$1data.").replace(rlastSemi,''), endOfHTML ); }else{ temp.push( startOfHTML, logic.replace(rlastSemi,''), endOfHTML ); } break;
相關源碼可見github。