J'utilise highcharts-ng avec highcharts.js
Chaque fois que je lance le graphique, j'obtiens cette erreur:
angular.js:13920 TypeError: Cannot read property 'pos' of undefined
at https://code.highcharts.com/stock/highstock.js:518:422
at Array.forEach (<anonymous>)
at a.each (https://code.highcharts.com/stock/highstock.js:27:466)
at F.<anonymous> (https://code.highcharts.com/stock/highstock.js:518:396)
at F.a.(anonymous function) [as getPlotLinePath] (https://code.highcharts.com/stock/highstock.js:19:437)
at a.Tick.renderGridLine (https://code.highcharts.com/stock/highstock.js:113:264)
at a.Tick.render (https://code.highcharts.com/stock/highstock.js:115:472)
at F.renderTick (https://code.highcharts.com/stock/highstock.js:159:427)
at https://code.highcharts.com/stock/highstock.js:160:448
at Array.forEach (<anonymous>)
Des idées?
Salut @ Lir10
Pourriez-vous contacter notre support? Voir: https://www.highcharts.com/support
Nous utilisons les problèmes de github pour les rapports de bogues. Dans votre cas, je ne suis pas sûr s'il s'agit d'un bogue dans Highstock, d'un graphique mal configuré ou d'un bogue dans le module highcharts-ng.
Des idées?
Une seule idée: une erreur suggère un problème de tiques xAxis / yAxis, j'essaierais donc de supprimer les options définies ici et de voir si cela résout le problème. Si oui, alors veuillez recréer le problème dans jsfiddle, sans highcharts-ng pour être sûr qu'il s'agit d'un bogue dans la lib Highstock.
Salut @pawelfus ,
Vous aviez raison - le problème était sur les tiques xAxis
Clôture du numéro
@ Lir10 Puis-je demander quel était le problème? J'ai le même problème et j'essaie d'identifier la cause. Merci!
@bobheadxi
Je suggérerais de faire ceci:
Des idées?
Une seule idée: une erreur suggère un problème de tiques xAxis / yAxis, j'essaierais donc de supprimer les options définies ici et de voir si cela résout le problème. Si oui, alors veuillez recréer le problème dans jsfiddle, sans highcharts-ng pour être sûr qu'il s'agit d'un bogue dans la lib Highstock.
@ Lir10 , pourriez-vous s'il vous plaît décrire où était exactement le problème, si vous vous en souvenez encore? Je suis confronté au même problème, mais je ne peux pas saisir les circonstances, cela se produit au hasard, et malheureusement la réponse de @pawelfus n'aide pas beaucoup.
Salut @davletovalmir
Si vous êtes en mesure de fournir un moyen stable de recréer le problème, veuillez partager un lien vers la démo ou les fichiers nécessaires.
@KacperMadej , je n'ai pas encore trouvé la cause principale, mais voici ce que j'ai découvert (je suis désolé à l'avance pour un morceau de code obscurci ci-dessous):
step
, à l'intérieur de ce bloc:d.group.animate({
scaleY: 1
}, G(z(d.options.animation), {
step: function(a, b) {
h[f] = v + b.pos * (c.pos - v); /// <-- b is undefined
d.group.attr(h)
}
}))
step
est appelée ici, comme vous pouvez le remarquer, avec contexte, mais sans a
et b
args:animate: function(e, q, b) {
q = a.animObject(y(q, this.renderer.globalAnimation, !0));
y(m.hidden, m.msHidden, m.webkitHidden, !1) && (q.duration = 0);
0 !== q.duration ? (b && (q.complete = b),
h(this, e, q)) : (this.attr(e, null, b),
q.step && q.step.call(this)); /// <-- function called without arguments
return this
}
animate
fait partie de SVGElement
et a été appelée dans la fonction render
.Je n'ai pas eu assez de temps pour examiner cette question en profondeur. J'espère que ce que j'ai trouvé vous sera utile.
PS Joindre également une capture d'écran avec une erreur de console. Je ne sais pas si cela aidera beaucoup, mais qui sait :)
@davletovalmir
Merci pour l'info - il me suffit de recréer le problème.
Voici une solution de contournement avec un correctif de code:
https://jsfiddle.net/BlackLabel/L6x08jeq/1/
Vous pouvez appliquer le correctif de code de la démo dans votre code (comme un module - après le fichier Highcharts principal). Si vous avez le temps, veuillez vérifier si cela résout l'erreur dans votre application.
FYI: Le code non minifié, lisible par l'homme pour les fichiers liés Highcharts est disponible en utilisant des fichiers avec .src.js
- par exemple highcharts.src.js
.
lorsque le graphique est rendu pour la première fois, et principalement lorsque le focus n'est pas sur le navigateur
C'est quelque chose à vérifier - cela peut être lié à une fonctionnalité récente qui empêche l'animation pour les cartes / fenêtres de navigateur non focalisées (car il n'est pas nécessaire d'animer lorsque personne ne regarde).
J'ai pu obtenir le code correspondant correct dans un code non minifié. La clé ici est d'utiliser le type de série de colonnes.
Démo: https://jsfiddle.net/BlackLabel/L6x08jeq/
Pas:
_Note interne: _
H.pick((fx && fx.pos), 1)
au lieu de fx.pos
semble résoudre le problème, mais des tests sont nécessaires pour confirmer.
@KacperMadej , merci, cela a du sens. Le correctif fonctionne :)
Pourriez-vous s'il vous plaît estimer quand ce correctif sera publié?
@davletovalmir
Le correctif sera en PR cette semaine et devrait être publié avec la prochaine version de Highcharts.
Pendant ce temps:
Le problème était dû au fait que la fonction animate
ne transmettait pas les arguments appropriés à step
lorsqu'elle contournait l'animation, je l'ai donc corrigée à la place.
@KacperMadej combien de temps avant la prochaine version? Nous venons de migrer à partir de highcharts angulaires et aimerions simplement installer la version avec le correctif avant de fusionner notre branche de fonctionnalités, au lieu de commencer avec du code supplémentaire pour corriger un bogue, qui ne sera plus là dans quelques jours.
La prochaine version (7.0.3) est prévue d'ici la fin de cette semaine
Existe-t-il un ETA mis à jour?
Des tests de régression sont en cours. Une fois tous les problèmes résolus, une nouvelle version sera publiée - je m'attendrais à une nouvelle version bientôt, quelques jours maximum.
Il est sorti maintenant @yhoiseth
Sucré! Merci de me l'avoir fait savoir 🙂
Pour une raison quelconque, GitHub ne m'a pas averti, même si je "surveille les versions" de ce référentiel
Je ne sais pas pourquoi vous n'avez pas reçu la notification, mais vous pouvez quand même vous inscrire à notre liste de diffusion: https://www.highcharts.com/blog/download/
Commentaire le plus utile
La prochaine version (7.0.3) est prévue d'ici la fin de cette semaine