2016-01-27 77 views
1

我正在使用nvd3並嘗試添加事件處理,同時單擊圖表。但是我在實施時遇到了一些問題,由於缺乏nvd3的文檔,我無法獲得解決方案。我跟着這個link,但我仍然得到以下錯誤在控制檯:nvd3中的事件處理

ReferenceError: chart is not defined

誰能告訴我什麼,我丟失或對事件處理nvd3任何最佳的解決方案。

+0

你可以發佈你的代碼嗎? – Giordano

+0

你解決了嗎?我的回答對你有幫助嗎? – Giordano

+0

是的,我能夠得到解決方案,但我嘗試了不同的方式。正如你所建議的那樣,我查看了nvd3和d3代碼的圖表名稱和調度事件,它工作。我現在發佈我的解決方案。 –

回答

1

可能你的問題是圖變量的名稱; 我爲你做一個小提琴。 在我的示例中,「圖表」是圖形變量的名稱。看看你的情況也是一樣的。

var chart = nv.models.multiBarChart(); 

無論如何,隨着小提琴,你可以看到完整的代碼。如果你點擊一個項目,你可以在控制檯中看到消息。

http://jsfiddle.net/g952qb5c/

1

至於建議的佐丹奴,我找了圖形和調度事件的名稱。然後我在這樣的選項中添加了這些事件監聽器。

注意:此解決方案適用於nvd3和角度。

$scope.options2 = { 
     chart: { 
      type: 'pieChart', 
      height: 500, 
      x: function(d){return d.key;}, 
      y: function(d){return d.y;}, 
      showLabels: true, 
      duration: 500, 
      labelThreshold: 0.01, 
      labelSunbeamLayout: true, 
      legend: { 
       margin: { 
        top: 5, 
        right: 35, 
        bottom: 5, 
        left: 0 
       } 
      }, 
      pie:{ 
       dispatch: { 
        elementClick : function(e){ 
         console.log('element: ' + e.value); 
         console.log(e); 
        } 
       } 
      } 
     } 
    }; 

希望這對別人也有幫助。