前言
在实际项目中,删除数据功能是非常常见和重要的一个功能。Layui作为一款非常优秀的前端UI框架,它提供了非常方便的数据操作接口。本文将介绍在Layui中如何实现删除数据的功能。
删除数据的准备
在进行数据删除操作之前,我们需要准备一些数据。在本文中,我们以一个用户列表为例进行讲解,数据通过Ajax获取。首先在页面中添加一个表格,用来展示用户数据,代码如下:
<table id="user_table" lay-filter="user_table">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>性别</th>
<th>邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
接着,通过Ajax获取数据,并将获取到的数据渲染到表格中,代码如下:
// 获取用户数据
$.getJSON("data/users.json", function (result) {
// 渲染用户列表
layui.use(['table'], function () {
var table = layui.table;
table.render({
elem: '#user_table',
data: result.data,
cols: [[
{ field: 'id', title: 'ID' },
{ field: 'username', title: '用户名' },
{ field: 'sex', title: '性别' },
{ field: 'email', title: '邮箱' },
{ fixed: 'right', title: '操作', toolbar: '#barDemo' }
]],
page: true
});
// 绑定表格中的删除按钮事件
table.on('tool(user_table)', function (obj) {
if (obj.event === 'delete') {
console.log(obj.data.id);
}
});
});
});
在这段代码中,我们通过Jquery的getJSON方法获取了用户数据,并将数据通过LayUI的表格渲染到页面中。同时,我们在操作栏中添加了一个删除按钮,当用户点击该按钮时,将调用删除方法。
删除数据的实现
在Layui中,我们可以通过table.on方法来监听表格的一些事件,比如单元格编辑,复选框选中等。在本文中,我们将通过该方法来监听删除按钮的点击事件,并实现删除操作。
首先,我们需要给操作栏中的删除按钮添加一个lay-event属性,并为其赋值为delete,以便于Layui能够识别该按钮的事件类型,代码如下:
// 渲染用户列表
layui.use(['table'], function () {
var table = layui.table;
table.render({
// ...
cols: [[
// ...
{ fixed: 'right', title: '操作', toolbar: '#barDemo' }
]],
page: true
});
// 绑定表格中的删除按钮事件
table.on('tool(user_table)', function (obj) {
if (obj.event === 'delete') {
console.log(obj.data.id);
}
});
// 操作栏模板
var editTpl = '<script type="text/html" id="barDemo">'
+ '<a class="layui-btn layui-btn-xs" lay-event="delete">删除</a>'
+ '</script>';
// 将操作栏模板渲染到页面中
$('body').append(editTpl);
});
接下来,我们在table.on方法中监听到删除按钮的点击事件后,调用layui.table.reload方法重新加载表格数据即可完成删除操作,具体代码如下:
table.on('tool(user_table)', function (obj) {
if (obj.event === 'delete') {
layer.confirm('确认删除该用户吗?', function (index) {
// 发送Ajax请求删除数据
$.ajax({
url: '/api/users/' + obj.data.id,
type: 'DELETE',
success: function (result) {
// 删除成功后,重新加载表格数据
table.reload('user_table');
},
error: function (xhr, status, error) {
layer.msg('删除用户失败,请重试!');
}
});
layer.close(index);
});
}
});
在上面的代码中,我们使用了layer.confirm方法来显示确认框并获取用户的确认。当用户确认删除后,我们将发送一个Ajax请求来删除数据。如果删除成功,则调用table.reload方法重新加载表格数据即可。如果删除失败,则弹出提示框提醒用户。
小结
通过上述步骤,我们成功实现了在Layui中删除数据的功能。Layui的表格组件提供了非常方便的数据操作接口,使我们能够轻松实现各种数据操作,非常适合快速开发和原型制作。