条形颜色恢复为原始颜色

Bar colors reverting back to original colors

我正在使用 angularjs-nvd3-指令。

我需要根据各个条的值为其着色。我可以使用 angularjs-nvd3-directives 执行此操作,方法是使用一个回调来选择栏并在渲染后为其着色。

<nvd3-multi-bar-chart
                data="vm.chartData"
                id="chartOne"
                width="400"
                height="550"
                showXAxis="true"
                showYAxis="true"
                noData="Charts not available"
                delay="2400"
                yAxisTickFormat="vm.yAxisTickFormatFunction()"
                forcey="[0,9]"
                callback="vm.colorFunction()"
                objectequality="true">
            <svg></svg>
        </nvd3-multi-bar-chart>

回调函数中的选择器如下所示:

d3.selectAll("rect.nv-bar")
.style("fill", function(d, i){
    return d.y > 50 ? "red":"blue";
});

总的来说,使用 angularjs-nvd3-directives 很好,并且节省了我一些时间,但是在图表呈现后使用选择器来自定义图表似乎需要做很多工作(为各个条形图着色,颜色 x/y 轴等等...).

手头的问题是,当 window 调整大小时,它会恢复到原来的蓝色。有没有办法保留我对栏的更新?我是否需要为 window.onresize 编写自己的事件(我已经尝试过但似乎不起作用)?

尽管我不想这样做,但我最终为我的图表编写了自己的指令,现在我可以完全控制图表,而无需编写大量代码来撤消 angularjs -nvd3-directives 在回调中执行。