如果你想了解更多關於layui的知識,可以點選:#layui教學
laytpl 是JavScript 模板引擎,在字元解析上有著比較出色的表現,欠缺之處在於異常調試上。由於傳統意義的前端模板引擎已經變得不再流行,所以 laytpl 後續可能會進行重寫,目前方向暫時還沒有想好,預計會在layui比較穩定後開始實施。
快速使用
與一般的字元拼接不同的是,laytpl 的模板可與資料分離,集中把邏輯處理放在View層,提升程式碼可維護性,尤其是針對大量模板渲染的情況。
layui.use('laytpl', function(){ var laytpl = layui.laytpl;//直接解析字符 laytpl('{{ d.name }}是一位公猿').render({ name: '贤心' }, function(string){ console.log(string); //贤心是一位公猿 }); //你也可以采用下述同步写法,将 render 方法的回调函数剔除,可直接返回渲染好的字符 var string = laytpl('{{ d.name }}是一位公猿').render({ name: '贤心' }); console.log(string); //贤心是一位公猿 //如果模板较大,你也可以采用数据的写法,这样会比较直观一些 laytpl([ '{{ d.name }}是一位公猿', '其它字符 {{ d.content }} 其它字符' ].join('')) });
你也可以將範本儲存在頁面或其它任意位置:
//第一步:编写模版。你可以使用一个script标签存放模板,如: <script id="demo" type="text/html"> <h3>{{ d.title }}</h3> <ul>{{# layui.each(d.list, function(index, item){ }} <li> <span>{{ item.modname }}</span> <span>{{ item.alias }}:</span> <span>{{ item.site || '' }}</span> </li> {{# }); }}{{# if(d.list.length === 0){ }}无数据{{# } }}</ul> </script> //第二步:建立视图。用于呈现渲染结果。 <div id="view"></div> //第三步:渲染模版 var data = { //数据"title":"Layui常用模块","list":[{"modname":"弹层","alias":"layer","site":"layer.layui.com"},{"modname":"表单","alias":"form"}]} var getTpl = demo.innerHTML, view = document.getElementById('view'); laytpl(getTpl).render(data, function(html){view.innerHTML = html;});
範本語法
語法 | 說明 | #範例 |
#{{ d.field }} | #輸出一個普通字段,不轉義html | <div>{{ d.content }}</div> |
{{= d.field }} | 輸出一個普通字段,並轉義html | <h2>{{= d.title }}</h2> |
{{# JavaScript表達式}} | JS 語句。一般用於邏輯處理。用分隔符號加 # 號開頭。 注意:如果你是想輸出一個函數,正確的寫法是:{{ fn() }},而不是:{{# fn() }} |
{{# var fn = function(){return '2017-08-18'; }; }} {{# if(true){ }} 开始日期:{{ fn() }} {{# } else { }} 已截止{{# } }} |
{{! template !}} | 對一段指定的模板區域進行過濾,即不解析該區域的模板。註:layui 2.1.6 新增 | <div> {{! 这里面的模板不会被解析 !}}</div> |
############################如果模版預設的{{ }} 分隔符號與你的其它模板(一般是服務端模板)有衝突,你也可以重新定義分隔符號:###
laytpl.config({ open: '<%', close: '%>' }); //分割符将必须采用上述定义的 laytpl([ '<%# var type = "公"; %>' //JS 表达式, '<% d.name %>是一位<% type %>猿。' ].join('')).render({ name: '贤心' }, function(string){ console.log(string); //贤心是一位公猿 });#########結語### ######### laytpl 應用在layui 的許多模組中,如:layim、table 等。儘管傳統意義的前端模板引擎已經變得不再流行,但 laytpl 仍然可以發揮一定作用,不妨嘗試一下吧。 ###
以上是layui模板引擎如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!