2014-08-27 2 views
0

С d3 выбор, возвращаемый * .enter(), особенный, поскольку он является только заполнителем для приближающихся элементов. К сожалению, это означает, что я не могу получить данные, связанные с входящими элементами, используя * .data() (как это возможно с помощью * .exit(). Data()).Получить данные для ввода в d3.js

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

Мой вопрос таков: как получить массив объектов данных, которые будут связаны с входящими элементами в объединении данных, прежде чем они будут созданы?

ответ

3

Вы можете напрямую обращаться к структурам данных внутри выбора. На верхнем уровне существует один массив элементов. Элемент содержит элементы-заполнители с привязанными к ним данными для выбора ввода. Вам просто нужно перебирать эти элементы.

var enterData = selection.data(data) 
    .enter()[0].map(function(d) { return d.__data__; }); 

Полная демо-версия here.

Смежные вопросы