如何使用nvd3触发resize事件?

时间:2017-07-18 17:07:16

标签: javascript jquery angularjs d3.js nvd3.js

我现在需要如何在nular3上为AngularJS触发resize事件。

问题是我在饼图中的标签上做了换行符,当我调整窗口大小时,标签返回到原始状态(1行)。

我想让它在每次触发调整大小事件时都会破坏它。

这是我的 html

<nvd3 on-ready="ctrl.onReadyPie('id')" options='ctrl.pieChartOptions' data='ctrl.data'>
</nvd3>

函数onReadyPie使换行:

function onReadyPie(id){            
    var svg = d3.selectAll('#' + id + ' svg g text');
    svg.each(function(){
        var el = d3.select(this),
            lines = el.html().split(' / ');
        el.text('');
        for(var i = 0; i<lines.length; i++){
            var tspan = el.append('tspan').text(lines[i]);
            if(i>0){
                tspan.attr('x', 0).attr('dy', 15);
            }
         }
     })
}

This is the current behavior

1 个答案:

答案 0 :(得分:1)

以下是使用NVD3调整窗口大小时触发事件的方法。

nv.addGraph(function() {
  var chart = nv.models.multiBarChart()
  // You chart properties goes here

  // Detect window resize using NVD3
  nv.utils.windowResize(function(){ chart.update(); });

  return chart;
});

有关详细信息,请查看NVD3 wiki

希望有所帮助