Previous topicNext topic
WebBuilderX > 子页面组件元素 > 表格类元素 >
列模板

列模板是一种可以让单元格内容按预定格式进行显示的技术。例如,在之前学习的“列弹层”绑定中,不论绑定的是图片管理器、文件管理器还是富文本编辑器,WebBuilderX都会为该列自动生成一个模板。

如下图所示,这里就是“个人简介”列在绑定富文本编辑器时自动生成的列模板:

这个列模板的意思是,当表格中的“个人简介”列有内容时,就显示为“圆形code”图标,没有内容时就显示为空字符串。其目的是为了让表格中的内容显示更加清爽。如果没有这个列模板,该列显示就会比较混乱,特别是在单元格内容带有html标签的时候,可能更加花里胡哨,严重影响整个系统的视觉效果。

该模板代码如下:

<div>{{- d.个人简介 ? "<i class='layui-icon layui-icon-code-circle' style='cursor:pointer'></i>" : ''}}</div>< /FONT>

其中,以蓝色标记的就是用于生成图标的代码,还同时给这个图标加上了样式,也就是当鼠标移动到该图标上时将自动变为手型,表示可以点击。

这里有个很重要的符号“d.”,它所表示的就是当前表格中的具体行数据;以“{{  }}”包起来的部分就是需要渲染解析的模板内容,在它外面还可以嵌入各种html标签。列模板代码有两种写法:

第一种,字符串。如上图所示的列模板代码就是字符串形式的。在这个字符串里面,经常会用到以下几种类型的标签,请务必注意它们之间的区别:

{{-  }}:这种标签表示,如果模板里有用到html的代码,就对其自动进行渲染。例如,上面的列模板代码就是以“{{-”开头的,所以这里的html代码自动渲染显示为图标形状:

{{=  }}:这种标签表示,如果模板里有用到html的代码,不要对它进行渲染,仍然以原来的内容显示。例如,将上面列模板中的“{{-”改为“{{=”,得到的页面效果是这样的:

由此可见,“{{-”和“{{=”的区别就在于对html代码的渲染上,一定要在实际使用时注意区分:如果模板中存在html代码、且需要浏览器对其渲染的时候,必须用“{{-”开头;如果你希望在页面中原样显示代码(包括js代码),则必须用“{{=”开头。

{{  }}:如果模板里没有用到任何html代码,可直接用“{{”开头。

{{# }}:表示要执行的js语句,一般用于单纯的逻辑处理。

{{! !}}:对一段指定的模板区域进行过滤,即不解析该区域的模板。

第二种,函数。这种模板以function(d)的匿名函数形式呈现,仅在处理比较复杂的代码逻辑时使用。仍以上面的个人简介为例,如果要改用函数,模板代码就可以这么写:

function(d){
        if(d.个人简介){
            return "<i class='layui-icon layui-icon-code-circle' style='cursor:pointer'></i>"
        }else{
            return ''
        }
    }

这样实现的效果与之前完全相同,且无需考虑究竟是以“{{=”、“{{-”还是以“{{”、“{{#”开头。因为函数的写法完全用不到这些,你只要按正常的js规则来写就行了。很显然,对于显示图标这样的简单模板,还是使用字符串的写法比较简洁一些。

对于一些常见的列数据格式模板,WebBuilderX都已自动生成,无需用户再去做任何的手工处理。现分别对几种情况进行说明。