博客列表 >layui的laytpl模板引擎使用

layui的laytpl模板引擎使用

阑夕的博客
阑夕的博客原创
2017年08月29日 15:38:371695浏览

            laytpl 的模板可与数据分离,集中把逻辑处理放在 View 层,提升代码可维护性,尤其是针对大量模板渲染的情况。

            有些后台只提供了API接口,返回json数据,这时可以用前端是模板引擎来处理

后台:
<?php
namespace app\index\controller;
use think\controller;
class Index extends controller
{
    public function index()
    {
        return $this->fetch();
    }

    public function getData(){

        $data = ['title'=>'标题','list'=>[['modname'=>'表单','alias'=>'form','site'=>'www,baidu.com'],['modname'=>'弹出','alias'=>'layout']]];
        header('Content-Type:application/json; charset=utf-8');

       exit(json_encode($data));


    }
}

前端:
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="/Public/js/jquery-2.2.1.min.js"></script>      //引入jquery
    <script src="/Public/layui/layui.js"></script>              //引入layui.js

</head>
<body>
<!-- 下面这个地方是模板 -->
<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>      //存在就显示item.site,不存在就为空
        </li>
        {{#  }); }}
        {{#  if(d.list.length === 0){ }}
        无数据
        {{#  } }}
 </ul>
</script>
<!-- 下面这个div是模板要填充的 -->
<div id="view"></div>

</body>

<script type="text/javascript">

    $(function(){
    //ajax请求数据
        $.ajax({
            url:"{:url('index/getData')}",
            type:'POST',
            dataType:'json',
            success:function(data){
                layui.use('layer', function(){
                    var layer = layui.layer;

                    layer.msg('加载成功');
                });
               
                layui.use('laytpl', function(){  //使用模板时要加载模板
                    var laytpl = layui.laytpl;
                    var getTpl = demo.innerHTML;
                    var view = document.getElementById('view');
                    laytpl(getTpl).render(data, function(html){
                        view.innerHTML = html;
                    });
                });
            }
        });

    });



</script>
</html>


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议