美文网首页
template相关

template相关

作者: Smile_smile_ | 来源:发表于2019-04-03 19:39 被阅读0次

    template介绍

    参考链接:tmpl基础介绍
    轻量级模板引擎,零依赖,兼容服务器端环境;

    使用方式:引入js文件  < script src = “ js / tmpl.min.js ” > </ script >

    tmpl格式(渲染JSON): < script type = “ text / x-tmpl ” id = “ tmpl-demo ” > <h3>{%=o.title%}</h3><p>Released under the<a href="{%=o.license.url%}">{%=o.license.name%}</a>.</p><h4>Features</h4><ul>{%for(vari=0; i<o.features.length; i++) {%}<li>{%=o.features[i]%}</li>{%}%}</ul>  </script>

    其中:o指代的是js渲染时 json中的data,script类型需设为“text/x-tmpl”;

    js(jquery)语法 :

    vardata={"title":"JavaScript Templates","license":{"name":"MIT license","url":"https://opensource.org/licenses/MIT"},"features":["lightweight & fast","powerful","zero dependencies"]};

    var dom = $('#dom');

    dom.html(tmpl('tmpl-demo',data));

    javascript: document.getElementById("dom").innerHTML=tmpl("tmpl-demo", data);

    tmpl function

      基于template基础用法的扩展,将tmpl作为function,渲染时通过传参将数据传递到tmpl模板中;

       eg1: var tmplFun1 = tmpl('tmpl-demo1');

       var dom1 = $('#dom1');

        var data= {[{'id':1,'name':'name1'},{'id':2,'name':'name2'},{'id':3,'name':'name3'},{'id':4,'name':'name4'}]};

       dom1.html(tmplFun1(data));

    < script type = “ text / x-tmpl ” id = “ tmpl-demo1 ” >

      <ul>

       {%for(var i=0;i<o.length;i++) { %}

         <li>{%=o[i].name%}</li>

      {% } %}

     </ul>

    </script>

       eg2:var tmplFun2 = tmpl('tmpl-demo2');

       var dom2 = $('#dom2');

       var data= {[{'id':1,'name':'name1'},{'id':2,'name':'name2'},{'id':3,'name':'name3'},{'id':4,'name':'name4'}]};

       var strDom = " ";

       data.forEach(function(val,index){

        strDom + = tmplFun2(val);

      });

    dom1.html(strDom);

    < script type = “ text / x-tmpl ” id = “ tmpl-demo1 ” >

    <li>{%=o.name%}</li>

    </script>

    子模板

    基于template扩展,tmpl中可拆分子模板,进行某些特殊处理

    eg:

    < script type = “ text / x-tmpl ” id = “ tmpl-demo1 ” >

    {%if("条件") { %}

    <li>{%=o.name%}</li>

    {% } else { %}

    {%include('tmpl-subTmpl',{id:o[i].id,name:o[i].name});%}

    {% } %}

    </script>

    <script type = “ text / x-tmpl ” id = “ tmpl-subTmpl” >

        <li>name:{%=o.name%}</li>

    </script>

    除了上面提到的if条件判断,for循环等 另外:template中还可使用变量传值,正则检测等;{%#o.content%} :将"=" 改为 "#"可原样输出内容;

    相关文章

      网友评论

          本文标题:template相关

          本文链接:https://www.haomeiwen.com/subject/xnctiqtx.html