制表器具有多个内置的单元格格式化程序,如文档http://tabulator.info/docs/4.0/format#format
中所述我们知道我们可以构建这样的自定义格式化程序:
var myCustomFormatter=function(cell, formatterParams, onRendered){
return "Mr" + cell.getValue();
}
然后在columns参数中使用它:
{title:"Name", field:"name", formatter:myCustomFormatter}
制表符格式化程序用作字符串时:
{title:"Name", field:"name", formatter:"textarea"}
我们的目标是通过扩展现有的格式化程序,将“ myCustomFormatter”添加到参数列的可用选项列表中。
为什么?我们正在构建动态的东西,并且columns参数将填充一个从JSON字符串接收其值的变量。像这样:
var jc='[{"title":"Name", "field":"name", "formatter":"myCustomFormatter"}]';
var c=JSON.parse(c);
var table = new Tabulator("#tbdiv", {columns: c});
但是此代码不起作用,因为formatters参数上没有“ myCustomFormatter”(作为字符串)。
结论是否可以将制表符格式化程序扩展为新的单元格格式化程序(而不更改原始代码)?
如果不是,是否有任何想法可以填充列参数,以便它使用我们的自定义格式化程序?
谢谢
答案 0 :(得分:0)
您可以使用Tabulator原型上的 extendModule 功能来扩展模块:
//add uppercase formatter to format module
Tabulator.prototype.extendModule("format", "formatters", {
uppercase:function(cell, formatterParams){
return cell.getValue().toUpperCase(); //make the contents of the cell uppercase
}
});
//use formatter in column definition
{title:"name", field:"name", formatter:"uppercase"}
在包含源文件之后,但在创建第一个表之前,您需要确保扩展Tabulator。
有关完整文档,请参见Tabulator Website Documentation