2017-10-18 10 views
0

J'ai un problème avec google chart. Je reçois une erreur dans la console:Impossible de lire la propriété 'carte' de undefined - Graphique Google

  • aperçu statistique-graphique-ctrl.js: 102 non interceptées (en promesse) TypeError: Impossible de lire la propriété 'map' undefined à rappel (vue d'ensemble statistique-graphique-ctrl.js : 102) at loader.js: 242

Lorsque je rafraîchis ou que je clique sur un autre lien pour revenir au même lien, cela fonctionne très bien. Mais je reçois cette erreur seulement quand je charge la première fois la page.

Ceci est mon code:

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'] 
}); 

Merci de l'aide!

+0

erreur se trouve dans cette ligne: var teamNames = $ scope.teams.map (team => team.team_name); – mrkibzk

+0

Je ne sais pas si c'est la solution de votre problème mais je pense que vous avez besoin si vous n'avez pas ajouté, pour appeler les cartes lorsque le corps est chargé si vous n'avez pas ajouté dans votre script. –

Répondre

0

Votre $scope.teams semble ne pas être défini correctement (la propriété 'teams' par défaut est undefined). Lorsque vous essayez de mapper sur le tableau 'teams' attendu, vous voyez l'erreur.

Assurez-vous que votre $scope et les propriétés dans $scope (ici $scope.teams) sont définies correctement avant d'essayer d'y accéder dans la fonction de rappel. Peut-être qu'un couple d'instructions de journal ou le débogage avec quelques points de rupture pourrait aider.

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

cela pourrait se produire parce que le temps que vous effectuez ces « autres » opérations du $scope.teams pourraient avoir la valeur attendue ou peut-être les « autres » opérations mettent la valeur $scope.teams.