首頁 >web前端 >Layui教程 >layui模板引擎如何使用

layui模板引擎如何使用

angryTom
angryTom原創
2019-07-31 10:46:035692瀏覽

layui模板引擎如何使用

如果你想了解更多關於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 || &#39;&#39; }}</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(&#39;view&#39;);
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 &#39;2017-08-18&#39;;
};
}}
{{#  if(true){ }}
开始日期:{{ fn() }}
{{#  } 
else { }}
已截止{{#  } }}
{{! template !}} 對一段指定的模板區域進行過濾,即不解析該區域的模板。註:layui 2.1.6 新增
<div> {{! 这里面的模板不会被解析  !}}</div>

############################如果模版預設的{{ }} 分隔符號與你的其它模板(一般是服務端模板)有衝突,你也可以重新定義分隔符號:###
laytpl.config({
  open: &#39;<%&#39;,
  close: &#39;%>&#39;
});
//分割符将必须采用上述定义的
laytpl([
  &#39;<%# var type = "公"; %>&#39; //JS 表达式,
  &#39;<% d.name %>是一位<% type %>猿。&#39;
  ].join(&#39;&#39;)).render({
  name: &#39;贤心&#39;
}, function(string){
  console.log(string); //贤心是一位公猿
});
#########結語### #########  laytpl 應用在layui 的許多模組中,如:layim、table 等。儘管傳統意義的前端模板引擎已經變得不再流行,但 laytpl 仍然可以發揮一定作用,不妨嘗試一下吧。 ###

以上是layui模板引擎如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:layui怎麼用下一篇:layui怎麼用