Доступны функции дерева данных табулятора - PullRequest
0 голосов
/ 29 апреля 2020

Я пользуюсь Tabulator чуть больше года, и мне это очень нравится. Я использую табулятор в нескольких местах в своем веб-приложении, поэтому я хотел придерживаться его для внешнего вида. Но для конкретной страницы, на которой я нахожусь, мне нужно иметь редактируемое дерево. Используя структуру дерева данных Табулятора, я получаю желаемый вид, но любые манипуляции, которые мне нужно сделать, помимо редактирования простых данных, требуют сложного кода.

Пример 1: одно из моих требований - добавить дочерний элемент в данный узел. Насколько я могу судить, функция addRow () работает только на уровне таблицы и всегда добавляет строку уровня root, верно? поэтому для добавления дочерней строки мне нужно получить массив _children, добавить элемент в массив, а затем обновить родительскую строку с помощью row.update ({_ children: updatedArray}). Кажется, что это должно работать, но это неизменно разрушает форматирование.

Перед добавлением потомка: before adding child

после добавления потомка: after adding child

Я принял долгий обходной путь, чтобы исправить это, упорядочив все дерево и повторно проанализировав данные, а затем обновляя строку root каждый раз, когда вносятся какие-либо изменения. это работает, за исключением того, что мой анализ немного подвержен ошибкам, и я продолжаю вводить новые ошибки.

Точно так же я столкнулся с проблемами удаления, продвижения или демодуляции узла, и единственное решение, которое я нашел, это повторно анализировать всю структуру всякий раз, когда вносятся какие-либо изменения.

Поэтому мой вопрос: есть ли в Tabulator встроенные функции для работы с древовидной структурой, которые я не нашел для добавления дочерних узлов, удаления узлов, продвижения или демонтирование узла, или я должен использовать другой элемент управления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...