如果NVD3.js饼图中的值等于0,则隐藏图例项

时间:2017-12-26 06:38:13

标签: javascript d3.js nvd3.js

当返回javascript等于headers时,希望隐藏{饼干图的request中的let headers = new Headers(); headers.append('token', token); // Try to pass token in header let options = new RequestOptions({ headers: headers }); return this.http.post(urlBase + '/tutorials/tutorial,fd, options) .map((res: Response) => res.json() || {}) .catch(this.handleError); 。任何人都可以在NVD3.js中指出我正确的方向吗?

iloc

1 个答案:

答案 0 :(得分:1)

可能的答案是在renderEnd事件中删除值为0的项目:

chart.dispatch.on('renderEnd', function () {
    console.log("renderEnd");
    d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
        //get the data
        var t = d3.select(d).data()[0];
        // remove item from legend
        if (t.value == 0)
            d3.select(d).remove();
    });
});

另一种可能性是在超时后删除项目:

setTimeout(function () {
    d3.selectAll(".nv-legend .nv-series")[0].forEach(function (d) {
        //get the data
        var t = d3.select(d).data()[0];
        // remove item from legend
        if (t.value == 0)
            d3.select(d).remove();
    });
}, 1);

在这两种情况下,其余项目之间存在差距。

这是一个小提琴(第一个选项):https://jsfiddle.net/beaver71/yt7vrohk/