問題
BootstrapTable 在引入了 bootstrap-table-zh-CN.js 并且配置了 locale 參數(shù)后开伏,導致 formatNoMatches 不生效。
查看源碼發(fā)現(xiàn) BootstrapTable.prototype.init 方法中遭商,會先執(zhí)行 BootstrapTable.prototype.initLocale 方法固灵。如果配置了 locale 參數(shù),會把對應的語言包中的參數(shù)合并到 options 中劫流,會覆蓋初始化時配置的 formatNoMatches 巫玻。
解決方案
-
如果是整個項目都統(tǒng)一配置,可以直接修改 bootstrap-table-zh-CN.js 中對應的方法祠汇。
如果要單獨配置仍秤,可以在調(diào)用 $('table').bootstrapTable({}) 之前覆蓋對應的語言包配置。相當于自己寫一個 bootstrap-table-zh-CN.js
var myLocales = {
formatLoadingMessage: function () {
return '自定義加載中可很。诗力。。';
},
formatNoMatches: function () {
return '自定義沒有數(shù)據(jù)';
},
};
var locale = 'zh-CN';//假如使用中文包
$.extend($.fn.bootstrapTable.locales[locale], myLocales);//合并到語言包
// $.extend($.fn.bootstrapTable.defaults, myLocales);
$('table').bootstrapTable({
locale: lang,
/*
* 其他配置
*/
formatNoMatches: function () {
return '表單暫無數(shù)據(jù)';//注意:這里配置的無效
},
});