制表符:autoColumnsDefinitions 使用自定义单元格格式化程序和动态定义的字段?

Tabulator: autoColumnsDefinitions using custom cell formatter and dynamically defined fields?

我有一个 ajax 制表符,我想在其中对动态(但类似地)定义的列使用自定义单元格格式化程序。

假设我有一个包含“事件”列的人员数据集,其中 ajax 响应最多可以包含 50 个事件字段,名为 Event1、Event2...Event50。 我可以使用 Column Definition Array or Field Name Lookup Object approaches 手动重复定义,例如:

    autoColumnsDefinitions:{
        PersonID: { title:"ID #", align:"right"},
        Event1: {formatter: eventFormatter},
        Event2: {formatter: eventFormatter},
        ...[variable # of Event cols here]...
    },

...

   function eventFormatter(cell){
      // format event here
   }

不过,使用回调似乎更合适。当我尝试这样的事情时,我的 eventFormatter 永远不会被调用,也不会引发任何错误或警告。

    autoColumnsDefinitions:function(definitions){
        definitions.forEach((column) => {
            if(column.field.match(/Event/)) {
                column = {
                    formatter:eventFormatter
                }
            }

是否可以将自定义单元格格式化程序应用于数据加载前未明确命名的字段?

您必须将 'column' 更新为 formatter 作为

autoColumnsDefinitions: function (definitions) {
  return definitions.map((column) => {
    if (column.field.match(/(name|title)/)) {
      column.formatter = titleFormatter;
    }
    return column;
  });
}

JSFiddle