2017-08-07 123 views
0

我正在使用angularjs在google圖表上工作。我的功能工作正常,但問題是,當我在它拋出,可以在瀏覽器控制檯中可以看出錯誤的傳奇點擊,我知道該錯誤的,因爲下面的代碼引起:錯誤:TypeError:無法讀取未定義的屬性'c'

$scope.serverId = chart1.data.rows[selectedItem.row].c[3].v; 
alert("serverid : " + $scope.serverId); 

以上當用戶單擊圖表中的任何一行並返回ID時,需要使用代碼來獲取分配的服務器ID,問題在於當用戶單擊圖例時,必須禁用圖表中的相應行,並在此場景經過測試,我可以在瀏覽器控制檯中看到錯誤。任何輸入如何解決該錯誤?

TypeError: Cannot read property 'c' of undefined 
    at $$childScopeClass.$scope.seriesSelected 

我還想讓代碼獲得serverID。演示的Click here。請點擊demo plunker中的提示來注意警報,當點擊圖例時,您可以注意到瀏覽器控制檯中的錯誤。

+0

重擊者爲我工作。 –

+0

@MikeFeltman不,如果你點擊右邊的圖例 – JeanJacques

回答

1

如果沒有selectedItem.row的值,那麼屬性'c'默認爲undefined。用一個檢查來檢查父對象是否先存在。

if (chart1.data.rows[selectedItem.row]) { 
     $scope.serverId = chart1.data.rows[selectedItem.row].c[3].v; 
     alert("serverid : " + $scope.serverId); 
    } 
+0

謝謝,它的工作@Brian – user8373379

+0

現在我可以通過選擇圖例隱藏數據,我可以選擇隱藏數據的圖例,如果圖表上沒有數據可見我選擇了所有的傳奇。我希望至少有一行應該在圖形上可見。有一種方法可以處理,如果用戶選擇3個圖例禁用4個圖例並再次選擇第4個圖例,則不應允許用戶選擇它,而不是拋出警報/消息說不能隱藏所有的信息。 – user8373379

相關問題