как редактировать древовидные данные с помощью d3 - PullRequest
0 голосов
/ 06 мая 2019
let treeData = {
  "name": "Top Level",
  "parent": "null",
  "children": [
    {
      "name": "Level 2: A",
      "parent": "Top Level",
      "children": [
        {
          "name": "Son of A",
          "parent": "Level 2: A"
        },
        {
          "name": "Daughter of A",
          "parent": "Level 2: A"
        }
      ]
    },
    {
      "name": "Level 2: B",
      "parent": "Top Level"
    }
  ]
}

Я хочу добавить детей в «Уровень 2: B». Я попробовал функцию иерархии, она не помогает мне обновлять исходные данные treeData, поэтому я могу перерисовать все дерево, добавив дочерние элементы к необходимому узлу.

d3.hierarchy(treeData, function(d) {
  return d.children;
});

Ожидаемый результат

let treeData = {
  "name": "Top Level",
  "parent": "null",
  "children": [
    {
      "name": "Level 2: A",
      "parent": "Top Level",
      "children": [
        {
          "name": "Son of A",
          "parent": "Level 2: A"
        },
        {
          "name": "Daughter of A",
          "parent": "Level 2: A"
        }
      ]
    },
    {
      "name": "Level 2: B",
      "parent": "Top Level",
      "children": [
         {"name": "Level 3: C", 
          "parent": "Level 2: B"
         }
      ]
    }
  ]
}

Мое требование - обновить оригинальные treeData с помощью d3 js. Таким образом, я могу перерисовать дерево с обновленными данными treeData, чтобы увидеть последние данные.

Спасибо

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