2017-07-31 84 views
0

我想了解和實現D3可重用圖表模式。D3 - 調用嵌套函數調用父函數並導致重複圖表

See sample implementation

這裏updatableChart是在選擇ID'#updatableChart'後調用的。

問題1:

如果我想通過調用如下調整高度參數,在隨後的代碼,它重複在圖表。

d3.select('#updatableChart') 
    .call(updatableChart.height(450)); 

我該如何使用此模式並更新高度而不影響原始圖表?

問題2:

現在,如果我需要另一個圖表,比如說,DIV ID「#updatableChart2」下,我仍然可以撥打和使用下面的代碼獲取圖表。

d3.select('#updatableChart2') 
    .call(updatableChart)` 

但是當我嘗試通過簡單地說updatableChart.height(500);它隻影響第二個圖表調整高度。我如何才能選擇圖表實例來進行工作?

謝謝。

回答

0

答1:

圖表再次繪製究其原因,是因爲我調用D3選區內updatableChart.height(450)。相反,它應該被簡稱爲updatableChart.height(450),以調整高度。

答2:

的問題是,在同一圖表對象被安裝到不同的div元素。

如果另一個圖表需要在不同的div下,那麼原始barchart()應該已經被實例化爲另一個副本,比如說var updatableChart2 = barChart(),並進一步使用。