2015-12-03 2 views
21

I have a family tree от Cyril's amazing answer, но я пытаюсь выяснить, как настроить его для поддержки нескольких партнеров. В этом случае я добавил узел «Хозяйка» и пытаюсь обозначить, что у «Хозяйки» и «Джона» был ребенок с именем «Скрытый сын».Несколько партнеров в генеалогическом древе в d3.js?

Текущая структура данных работает следующим образом:

enter image description here

В это, root объект хранит все. Он имеет массив children, который содержит большинство «поколений» без родителей. Он также содержит объект, содержащий дочерние элементы этих узлов/узлов. В приведенном выше примере это root.children[2].

Я думаю, что мне придется реорганизовать структуру данных children и ввести информацию о том, кто является родителем ребенка. Просто возникли проблемы концептуализации этого, а также линии

Конец было бы что-то вроде этого, кроме любовницы будет находиться на левой стороне:

enter image description here

+0

Привет, @meder просто хотел сообщить вам, что я не получил награду, которую вы задали по этому вопросу ... похоже, что она ушла в сообщество :( – Cyril

+0

@ Кирилл - как? Я выбрал ваш ответ? –

+0

Да, я задаю тот же вопрос SO поддержки http://meta.stackoverflow.com/questions/312522/i-didnt-get-the-bounty-for-a-question-i-answered/312544?noredirect=1 # comment283829_3125 он говорит: «Ваш ответ поэтому не подходит для автоматического награждения щедрот и может выиграть только награду, если владелец награды возьмет на себя явное действие по присуждению вам.» – Cyril

ответ

24

@medder спасибо за высокую оценку!

Для этого я добавил скрытый узел между john и любовницей.

И добавил ребенок к этому скрытому узлу, поэтому кажется, будто джон и любовницы есть ребенок «Hidden Сын» Так JSON выглядит

{ 
    name: "Mistress", 
    id: 9000, 
    no_parent: true 
    }, { 
    name: "",//this is the new node between Mistress and John 
    id: 100, 
    no_parent: true,//it has no parents 
    hidden: true, 
    children: [{ 
     // so this hidden node will have a child 
     // which will make it appear as if john and mistress has a child. 
     name: "Hidden Son", 
     id: 9001 
    }] 
    }, { 
    name: "John", 
    id: 16, 
    no_parent: true 
    }, 

Рабочего коду here

Надежда это помогает!

+0

Я вижу. Итак, необходимо, чтобы этот скрытый «дочерний» объект находился между родительскими объектами в списке? Я все еще пытаюсь понять ваш код. –

+0

Кстати, как бы вы центрировали текст, если они переполняют коробку? –

+0

Да!необходимо поставить скрытый узел между ними, чтобы дать визуальное впечатление, что дети принадлежат john и любовнице. – Cyril