0
http://jsfiddle.net/brunoperel/z6qfttmr/выход() удалить() не удаляет устаревшие элементы
Я пытаюсь создать элементы на лету, в зависимости от связи, которая была нажата на:.
d3.select('#processes').selectAll('.processLaunch').data(helperProcessesData).enter()
.append('a')
.classed('processLaunch', true)
.attr('href', 'javascript:void(0)')
.text(function(d) { return d.text; })
.on('click', function(d) {
var currentProcess=d.name;
var filteredData = helperStepsData.filter(function(d) { return d.process === currentProcess; });
var helperStepsForProcess = d3.select('div#helperContainer').selectAll('.helperStep')
.data(filteredData);
console.log('Filtered data : '+JSON.stringify(filteredData));
console.log('Linked data : '+JSON.stringify(helperStepsForProcess.data()));
helperStepsForProcess.enter()
.append('div').text(function(d) { return 'Step '+d.step+' : '+d.title; });
helperStepsForProcess.exit().remove();
});
Есть (по крайней мере!) две вещи, которые я не понимаю здесь:
- Каждый раз, когда я нажимаю на ссылку, связанные тексты добавляются на страницу, но устаревшие из них не удаляются, даже если я назвал
.exit().remove()
выбор. Зачем ? - Когда я делаю
console.log
данных, которые должны быть привязаны к элементам выделения, он возвращает массив объектов, что хорошо. Но когда в строке после этого я получаю данные, привязанные к элементам, я получаю массив изundefined
объектов. Почему бы мне не получить массив объектов?
Вы правы, это лучше: я не получаю дополнительные строки, если я могу это исправить. Однако, [я не вижу правильного текста] (http://jsfiddle.net/z6qfttmr/1/): Если вы нажмете «Запустить процесс 2», я не вижу ожидаемого текста «Первый шаг второй процесс ", но вместо этого я вижу« Первый шаг », а это означает, что первый элемент не был обновлен новым текстом, хотя второй элемент был удален, как и ожидалось. Зачем ? –
Обновленный скрипт, забыл поместить текст в какое-то событие «update» вместо этого в enter(). Хорошо? –
Спасибо! Я не понимал, что обновленные элементы должны быть обработаны также с помощью text() –