2017-10-18 140 views
0

我有谷歌圖表的問題。我得到錯誤控制檯:無法讀取undefined的財產「地圖」 - Google圖表

  • 概述 - 個統計圖表-ctrl.js:102未捕獲的(以諾)類型錯誤:無法讀取性能在回調的不確定的「地圖」(概述-個統計圖表,ctrl.js :102)at loader.js:242

當我刷新或點擊其他鏈接並返回到相同的鏈接時,它的工作效果很好。但只有當我第一次加載頁面時纔會出現此錯誤。

這是我的代碼:

google.charts.load('current', { 
    callback: function() { 
     var teamNames = $scope.teams.map(team => team.team_name); 
     var days = $scope.teams.map(team => team.date_activity); 
     var avgMaxHRLastDays = $scope.teams.map(team => team.avgMaxHRLastDays); 

     var days = $scope.teams.map(team => team.date_activity); 
     var withDates = avgMaxHRLastDays.map(data => data); 

     var newArray = matrixTranspose(withDates); 

     var dataChart = newArray.map(data => [''].concat(data)); 

     console.log("dataChart ", dataChart); 

     var filled = dataChart.map(data => fillWithZeros(data, $scope.teams.length)); 

     var dataToVisualize = [ 
      ["Teams"].concat(teamNames), 
     ].concat(filled); 

     var data = new google.visualization.arrayToDataTable(dataToVisualize); 

     var chart = new google.visualization.LineChart(document.getElementById('heartOverviewChart')); 
     chart.draw(data, optionsDesktop); 
    }, 
    packages: ['corechart'] 
}); 

感謝您的幫助!

+0

錯誤在這一行:var teamNames = $ scope.teams.map(team => team.team_name); – mrkibzk

+0

我不知道如果是你的問題的解決方案,但我認爲你需要,如果你沒有添加,當身體加載時調用圖表,如果你沒有添加你的腳本。 – 2017-10-18 06:49:47

回答

0

您的$scope.teams似乎沒有正確設置(這會將'teams'屬性默認爲undefined)。因此,當您嘗試映射期望的'teams'數組時,您會看到錯誤。

確保您嘗試訪問它們在回調函數之前,你的$scope和在$scope(這裏$scope.teams)的屬性設置正確。

也許一些日誌語句或調試它與一些斷點可能會有所幫助。

When I refresh or click on some other link and go back to the same link it's work great.

這可能會爲你執行那些「其他」操作$scope.teams可能具有預期值或者也許那些「其他」的操作設定$scope.teams值的時間,因爲發生。