Layui数据表格怎么写一个通用的模板?多列数据相同返回时的写法

通常,我们以templet: ratio参数作为Layui的数据表格模板,再对ratio进行定义,即可实现。

我们只需要做一些简单的返回,比如state判断,0输出一个button,1输出另一个button。

需求

在实际开发过程中,我遇到一个需要使用通用模板返回不同数据的需求。

即所有列都定义一个相同的templet名称,通过获取layui当前列名称和所在单元格数据,经过一定的逻辑处理,返回相应的数据。

获取列名称

我们定义模板时会做这样的定义:

其中d就是当前行的数据。

如果要获取列名称,可以用:

通过控制台即可打印列名称:

获取单元格的值

正常情况下,我们直接用d.state,就能获取到指定单元格的值。

现在,我们的state成了一个变量,即当前列的名称,this.field。

那么,我们已经有var field,是否可以d.field来表达当前行指定列的值呢?

不可以的,因为d是一个对象,默认情况下d.field表达式直接去取d对象的field属性值。

更换表达式

对象的取值,除了d.state的形式外,还有d[‘state’]形式,我们尝试更换表达式:

即可将field作为“变量”传递进去。

最终代码

如上,即可用一个公共模板完成工作,同理,通过拓展可以实现更多功能。

原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10428

发表评论

登录后才能评论