Ответ 1
Я нашел ответ в этом сообщении SVG не корректно отображался в качестве основного режима
d3.select(this.el)
делает трюк!
В backbone.js функция рендеринга представления генерирует unattached html, который впоследствии может быть привязан к dom.
В настоящее время у меня должна быть существующая цель в HTML, чтобы я мог добавить svg. Затем я использую шаблон data/enter для вставки элементов в svg. Есть ли способ получить d3.js для генерации svg без привязки к dom?
var svg = d3.select("#target").append('svg')
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
В качестве альтернативы, возможно ли предоставить d3 непривязанный элемент dom, чтобы добавить материал? Что-то вроде этого? Документация D3.js предполагает, что select может принимать узлы, но для меня не работает следующее:
var svg = d3.select(this.$el).append('svg') // Uncaught TypeError: Object [object Object] has no method 'appendChild'
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data([1,2,3])
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
Я нашел ответ в этом сообщении SVG не корректно отображался в качестве основного режима
d3.select(this.el)
делает трюк!