开发者问题收集

在 Polymer 中获取 d3 元素时遇到问题

2016-10-13
330

我正在尝试实现 立体主义 ,并且在我的 组件中使用 v2。第一步是选择图表的 DOM 元素:

d3.select("#example1").call(function(div) {
...    
});

这在 cubism.v1.js 的第 1205 行返回以下错误:

Uncaught TypeError: Cannot read property 'appendChild' of null

检查代码后, div 对象没有 id,并且 innerHtml 值是我的 html 的 全部 (从 <head> 开始,到 </body> 结束)。

我假设这是由于代码运行后聚合物渲染 <div id='example1'></div> ,但我不确定。我尝试将 select 语句放在 <dom-module> 下其自己的 <script> 标记中以及 Polymer.ready 函数中。两者的结果相同。

我该如何修复此问题?

2个回答

我能够通过将此:

d3.select("#example1").call(function(div) { .. }

更改为:

var chart = self.$$('#example1');
d3.select(chart).call(function(div) { ... }

来解决该问题,如 自动节点查找 中所述。

2016-10-13

为了在聚合物中使用d3v5在聚合物中选择阴影dom元素(具有ID,类等),您可以简单地进行以下操作:

095538917
Manas
2019-01-20