封装一个函数,如果有属性是动态的,则需要如下写法:
function fn(name,value){
var obj = {
[name]:value
}
return obj;
}
console.log(fn("page","12"))
// 结果为{page:"12"}
下面是layui数据表格中,单独的分页封装的调用
html部分:
<div id="page"></div>
js部分:
function page (table,laypage,id,count,page,limit){ //layui的table,laypage,数据表格的id,后台返回的数据总条数,当前页数,每页的条数
//完整功能的分页
laypage.render({
elem: 'page'
//数据总数,从服务端得到
,count:count
,limits:[10, 20, 30, 40, 50]
,layout: [ 'prev', 'page', 'next', 'limit', 'skip']
,jump: function(obj){
//console.log(obj)
// 表格重载
table.reload(id, {
where: { //设定异步数据接口的额外参数,任意设
[page]:obj.curr,
[limit]:obj.limit
}
});
}
});
}
当时封装属性名的时候,遇到这个问题,因为请求分页的参数,后台可能不是一个人写的,参数不同。为了可以通用,连传参的属性名也传过来。