博主信息
博文 2
粉丝 0
评论 0
访问量 2828
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
layui的laytpl模板引擎使用
阑夕的博客
原创
2038人浏览过

            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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学