D3 selectAll获得的结果超出预期

时间:2017-08-17 07:14:10

标签: angularjs d3.js nvd3.js

我使用nvd3 multiChart,我有一个使用$timeout的函数,然后计算并更改y轴ticks属性:transform: translate(x, y) y值。它可以在90%的时间内正常工作,但有时(并且始终如一)d3.selectAll会发现更多"滴答"超出预期。我看看DOM,只有6个刻度,但是d3.selectAll找到了10个或11个元素。

var selector = '#' + uid + ' .lineChart .nvd3 .nv-y1.nv-axis.nvd3-svg .nvd3.nv-wrap.nv-axis .tick';

var ticks = d3.selectAll(selector);
ticks.attr("transform", function (label, index) {
     return "translate(0," + (baseHeight / 5) * (ticks[0].length - index - 1) + ")"
});

baseHeight是图表的计算高度(先前计算并给出正确的结果)。

由于ticks[0].length返回的数字与预期不同(总是应该有6个刻度 - 我自己使用tickValues来设置它)计算错误并且图表全部搞砸了起来。

我做错了什么?任何想法都将不胜感激。

0 个答案:

没有答案