在聚合物中获得d3元素的麻烦

Trouble getting element for d3 in Polymer

本文关键字:元素 麻烦 d3 聚合物      更新时间:2023-09-26

我正试图实现立体主义,我在我的聚合物组件中使用d3.js 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>Polymer.ready函数下的<script>标签中。两者结果相同。

我该如何解决这个问题?

我可以通过改变这个来解决这个问题:

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

:

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

自动查找节点

为了在使用D3V5的聚合物中选择阴影DOM元素(带有id,类等),您可以简单地执行以下操作:

<div id="example"></div>
d3.select(this.$.example)