BootstrapVue表格列标签格式自定义求助:如何让标签完全按代码定义显示
解决BootstrapVue表格列标签自动格式化的问题
我太懂这个坑了!BootstrapVue的<b-table>默认会自动对列标签做首字母统一格式化——把每个单词的首字母大写,其余字母强制小写,这就是你定义的'IP Address'被渲染成'Ip Address'的原因。要让标签严格按照代码里的原样显示,有两个实用的解决办法:
方法1:全局禁用标签自动格式化
如果你希望所有表格的列标签都保持自定义的大小写,可以在初始化BootstrapVue时全局关闭这个默认行为:
import Vue from 'vue' import BootstrapVue from 'bootstrap-vue' // 初始化时配置全局选项 Vue.use(BootstrapVue, { BTable: { labelFormatter: false // 关闭默认的标签格式化 } })
设置后,所有<b-table>的列标签都会完全按照你在fields里定义的label值渲染,不会做任何自动调整。
方法2:针对单个列禁用格式化
如果只是某几列需要保留自定义大小写,不想影响全局的其他表格,可以给特定列添加labelFormatter: null属性:
data: function () { return { fields: [ { key: 'hostname', label: 'Hostname', tdClass: 'x-table', visible: true, stickyColumn: true}, // 给这一列添加labelFormatter: null,禁用自动格式化 { key: 'ip_address', label: 'IP Address', tdClass: 'x-table', visible: true, labelFormatter: null } ] } }
这样只有ip_address这一列的标签会严格显示为'IP Address',其他列依然遵循默认的格式化规则。
补充说明
BootstrapVue内置的标签格式化逻辑是把标签字符串按空格拆分,然后对每个单词执行「首字母大写+其余字母小写」的处理。所以不管你写的是'ip address'还是'IP Address',默认都会被转成'Ip Address'。通过上面两种方法禁用这个逻辑,就能完全保留你自定义的大小写格式。
内容的提问来源于stack exchange,提问作者Jukebox
相关产品推荐
相关产品推荐

