2015-06-30 66 views
17

我使用的是角度nvd3指令。根據爲例角度nvd3折線圖自動調整大小

https://github.com/angularjs-nvd3-directives/angularjs-nvd3-directives/blob/master/examples/lineChart.with.automatic.resize.html

<!-- 
width and height are removed from the directive for automatic resizing. 
--> 

好吧,如果我改變圖形的大小股利。它調整大小,但只有當我移動/打開/關閉'控制檯視圖'(ctrl + 轉變 + FF)。

我檢查了angular-nvd3-directive,沒有事件調用調整大小,所以我想這是一個d3/nvd3 comportement?

我的問題到目前爲止:如何模擬這種事件的圖形來調整大小?

+0

你可以把你的代碼放到小提琴或jsbin中嗎? –

回答

8

您可以嘗試觸發另一個可重繪圖形的調整大小事件。 window.dispatchEvent(new Event('resize'));

類似的方法適用於Chart.js。當控制檯可見時會改變頁面,這很奇怪 - 仍然沒有完全理解它是如何工作的,但它會定期顯示動態佈局。

+0

我的做法有點棘手。但我使用你的線路,它運作良好。我有沒有辦法讓你回報賞金? – ssbb

+0

很高興工作。不,不幸的是,賞金有一段時間到期。 –

+4

控制檯可見性更改頁面的原因是,如果它們已停靠,則切換開發人員工具會調整瀏覽器窗口的大小並調度resize事件。如果您通過拖動瀏覽器窗口的邊緣來更改其尺寸來調整大小,也是如此。 – esdot

1

我不知道它會幫助你或沒有,但我想你可以更新圖表,而你的DIV調整它的作品在我的情況: -

例如: -

$('#my_div').bind('resize', function(){ 

      for (var i = 0; i < nv.graphs.length; i++) { 
       nv.graphs[i].update(); 
      } 

}); 
0

你可以添加一個jQuery的resize事件處理程序,如果你不使用jQuery,那麼你可以使用角度附加事件處理程序。

使用jQuery

$(document).on('resize', function() { 
 

 
    for (var i = 0; i < nv.graphs.length; i++) { 
 
    nv.graphs[i].update(); 
 
    } 
 

 
});

採用了棱角分明只有

Here是一個例子,演示如何使用角度附加事件做文檔。