layui使用模板渲染数据

简介: layui使用模板渲染数据

1.定义容器(用于填充渲染后的script)

<div id="view" style="display: none;"></div>

2.定义script模板

<script type="text/html" id="myModal">
    <div style="padding: 20px;">
        <form id="userForm" class="layui-form" lay-filter="editWin">
            <input type="hidden" id="uid" name="uid" value={{=d.id}}>
            
            <div class="layui-form-item">
                <label class="layui-form-label">角色类别:</label>
                <div class="layui-input-block">
                    <select id="roleTypeSelect" class="layui-select">
                        <option value="-1">请选择角色类别</option>
                        {{# layui.each(d.roleTypeList, function(index, item){     }}
                            {{#  if(d.roleType == item.dicVal ){   }}
                                <option value="{{ item.dicVal}}" selected="selected">{{ item.dicName}}</option>
                            {{# }else{ }}
                                <option value="{{ item.dicVal}}" >{{ item.dicName}}</option>
                            {{# } }}
                        {{# });  }}
                    </select>
                </div>
            </div>
            
        </form>
    </div>
</script>

3.laytpl动态绑定渲染script

// 此处模拟展示data数据

{

   "roleTypeList" : [

       {"dicVal" : "01" , "dicName" : "管理员"},

       {"dicVal" : "02" , "dicName" : "游客"},

       {"dicVal" : "03" , "dicName" : "普通用户"},

   ],

   "id" : 7,

   "roleType" : "03"

}

 

var scriptHtml = document.getElementById("myModal").innerHTML;
var view = document.getElementById("view");
 
// 通过data数据渲染script模板
laytpl(scriptHtml).render(data, function (html) {
    view.innerHTML = html;
});
 
// layui弹框,类似model模态框
layer.open({
    type: 1,
    title: '弹框名称',
    offset: '20px',
    area: ['500px', '330px'],
    closeBtn: false,
        content: $("#view")
    })
 
form.render('select');  // layui中动态设置html的某个类型标签时,需要layui.render('type')刷新

参考地址

Layui - 经典开源模块化前端 UI 组件库

laytpl标签: {{# }}
 
参数格式:
{
    "field" : "值",
    "keyList" : [
        {"field":"值1"},
        {"field":"值2"}
    ]
}
 
// 模板中使用d表示传入参数
 
1.输出字段,不转义html
    {{ d.field }}
 
2.输出字段,转义html
    {{= d.field }}
 
3.js表达式
    {{#     if(d.field=="XXX"){     }}
        // 输出值
    {{#     }         }}
 
4.遍历集合
    {{# layui.each(d.keyList, function(index, item){     }}
        {{# item.field }}
    {{# });  }}

 


相关文章
|
前端开发 JavaScript 安全
前端框架Layui实现动态选项卡&iframe使用(附源码)
前端框架Layui实现动态选项卡&iframe使用(附源码)
2530 0
|
前端开发 JavaScript Java
Layui的选项卡及菜单
Layui的选项卡及菜单
456 0
|
前端开发 JavaScript
通用的layui框架系统管理后台模板
通用的layui框架系统管理后台模板
588 0
|
前端开发
layui select 绑定onchange事件失效
layui select 绑定onchange事件失效问题处理
|
JSON 前端开发 JavaScript
layui-数据表格的实现
`layui`是一个前端UI框架,本文档介绍了如何使用layui创建数据表格。首先展示了三张截图来预览效果,接着讲解了下载layui资源包并导入到项目中的步骤。然后,在新建的web项目中引入layui的CSS和JS文件。文档提供了模拟的JSON数据来展示表格内容。接下来,详细说明了数据表格的实现,包括注意事项和代码实现,强调了`table`标签的`id`与`script`中`elem`的匹配。此外,文档还涵盖了监听头部工具栏和工具条事件的方法,并展示了弹出层的实现,用于添加和编辑表格数据。最后,给出了完整的HTML源码示例。
655 0
|
关系型数据库 MySQL 数据处理
Mysql关于同时使用Group by和Order by问题
总的来说,`GROUP BY`和 `ORDER BY`的合理使用和优化,可以在满足数据处理需求的同时,保证查询的性能。在实际应用中,应根据数据的特性和查询需求,合理设计索引和查询结构,以实现高效的数据处理。
1715 1
|
前端开发 Java
后端BUG系列之:SpringBoot上传文件太大 报错 Maximum upload size exceeded
这篇文章讨论了SpringBoot应用中上传文件过大导致的错误"Maximum upload size exceeded",并提供了通过修改`application.properties`文件中的上传限制配置来解决这个问题的方法。
|
网络协议 安全 网络安全
免费申请 HTTPS 证书的八大方法
免费申请 HTTPS 证书的八大方法
14189 0
|
JavaScript
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题

热门文章

最新文章

下一篇
开通oss服务