Рабочий пример для пользовательского формата заголовка / заголовка столбца? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть форматер, который работает с данными столбца, используя параметр столбца formatter. Используя тот же форматер с параметром столбца titleformatter, я получаю сообщение об ошибке, указанное ниже. Кроме того, я не понимаю, почему HTML в тексте параметра title, кажется, не работает для <b> ... </b>, но работает для других вещей (например, <i> ... </i>. Работающий пример пользовательского форматера может помочь. (Я не вижу это в документации Табулятора.) См. этот монтаж, объединяющий заголовок столбца и снимок заголовка строки с общим текстом ячейки --- «жирный» в строке выглядит мне смелее.

Монтаж скриншота сравнения ячеек текста

Я пытался эмулировать некоторый опубликованный пример кода, но я получаю ту же ошибку, о которой сообщил @dagroj в своем комментарии к ответу @Oli Folkerd (на вопрос ) о titleformatter --- а именно tabulator.min.js:2 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. (Упоминание этого здесь, потому что у меня еще нет репутации, чтобы комментировать там.)

Вот рендеринг моего CPT без форматера заголовка.

Конструктор соответствующей таблицы:

  "columnVertAlign": "bottom",
  "height": "100%",
  "layout": "fitColumns",
  "columns": [
    {
      "title": "<i> absolute_T<--T (noisyAnd)</i>",
      "columns": [
        {
          "title": "<b> NotCorrAnd_EffectiveHyp</b>",
          "field": "label",
          "align": "right",
          "headerSort": false
        }
      ]
    },
    {
      "title": "NotB_EffectiveHyp",
      "columns": [
        {
          "title": "<b>T</B>",
          "field": "true",
          "align": "center",
          "headerSort": false
        },
        {
          "title": "<i>F</i>",
          "field": "false",
          "align": "center",
          "headerSort": false
        }
      ]
    },
    {
      "title": "<b> Belief </b>",
      "columns": [
        {
          "title": "odds",
          "field": "odds",
          "align": "center",
          "headerSort": false
        },
        {
          "title": "log<sub>2</sub> odds",
          "field": "log2odds",
          "align": "center",
          "headerSort": false
        }
      ]
    }
  ]
}

Formatter:

function truthFormatter(cell, formatterParams, onRendered) {
    var cellValue = cell.getValue();
    var cellElement = cell.getElement();
    if (cellValue == "T") {
    cellElement.style.backgroundColor = "#0000B3";
    cellElement.style.color = "#FFFFFF";
    cellElement.style.textAlign = "center";
    cellElement.style.fontWeight = "bold";
    }
    else if (cellValue == "F") {
    cellElement.style.backgroundColor = "#B30000";
    cellElement.style.color = "#FFFFFF";
    cellElement.style.textAlign = "center";
    cellElement.style.fontWeight = "bold";
    }
    else cellElement.style.color = "#000000";
    return cell.getValue();
}

1 Ответ

0 голосов
/ 30 октября 2018

Заголовки столбцов по умолчанию выделены жирным шрифтом, поэтому добавление жирного или сильного тега не сделает их более жирными. На стороне не вы используете сочетание строчных и прописных букв "b" в ваших тегах

Если вы получаете эту ошибку, это означает, что ваш форматировщик не возвращает допустимое значение, это должна быть либо строка / число, либо элемент DOM типа Node.

...