Saya menggunakan highcharts-ng dengan highcharts.js
Setiap kali saya meluncurkan grafik, saya mendapatkan kesalahan ini:
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>)
Ada ide?
Hai @ Lir10
Bisakah Anda menghubungi dukungan kami? Lihat: https://www.highcharts.com/support
Kami menggunakan masalah github untuk laporan bug. Dalam kasus Anda, saya tidak yakin apakah ini bug di Highstock, bagan yang salah konfigurasi, atau bug di modul highcharts-ng.
Ada ide?
Hanya satu ide: kesalahan menyarankan masalah centang xAxis / yAxis, jadi saya akan mencoba menghapus opsi yang ditentukan di sana dan melihat apakah ini menyelesaikan masalah. Jika ya, maka buat ulang masalah di jsfiddle, tanpa highcharts-ng untuk memastikan itu bug di Highstock lib.
Hai @pawelfus ,
Anda benar - masalahnya ada pada tanda centang xAxis
Menutup masalah
@ Lir10 Bolehkah saya bertanya apa masalahnya? Saya memiliki masalah yang sama dan saya mencoba untuk menemukan penyebabnya. Terima kasih!
@bobbobotoh
Saya menyarankan untuk melakukan ini:
Ada ide?
Hanya satu ide: kesalahan menyarankan masalah centang xAxis / yAxis, jadi saya akan mencoba menghapus opsi yang ditentukan di sana dan melihat apakah ini menyelesaikan masalah. Jika ya, maka buat ulang masalah di jsfiddle, tanpa highcharts-ng untuk memastikan itu bug di Highstock lib.
@ Lir10 , dapatkah Anda menjelaskan di mana tepatnya masalahnya, jika Anda masih ingat? Saya menghadapi masalah yang sama, tetapi saya tidak dapat menangkap situasinya, itu terjadi begitu saja, dan sayangnya jawaban @pawelfus tidak banyak membantu.
Hai @davitri
Jika Anda dapat memberikan cara yang stabil untuk menciptakan kembali masalah tersebut, harap bagikan link untuk demo atau file yang diperlukan.
@KacperMadej , saya belum dapat menemukan akar masalahnya, tetapi inilah yang saya temukan (saya minta maaf sebelumnya untuk potongan kode yang dikaburkan di bawah):
step
, di dalam blok itu: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
fungsi dipanggil di sini, seperti yang Anda perhatikan, dengan konteks, tetapi tanpa a
dan 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
adalah bagian dari SVGElement
dan dipanggil di dalam fungsi render
.Saya tidak punya cukup waktu untuk memeriksa masalah itu secara mendalam. Semoga apa yang saya temukan akan membantu Anda.
PS Juga melampirkan potongan screenshot dengan kesalahan konsol. Tidak yakin apakah itu akan banyak membantu, tapi siapa tahu :)
@rumahsakitotak
Terima kasih atas infonya - cukup bagi saya untuk membuat ulang masalahnya.
Berikut solusi dengan perbaikan kode:
https://jsfiddle.net/BlackLabel/L6x08jeq/1/
Anda dapat menerapkan perbaikan kode dari demo ke dalam kode Anda (seperti modul - setelah file Highcharts utama). Jika Anda punya waktu, periksa apakah ini menyelesaikan kesalahan di aplikasi Anda.
FYI: Tidak dikecilkan, kode yang dapat dibaca manusia untuk file terkait Highcharts tersedia dengan menggunakan file dengan .src.js
- misalnya highcharts.src.js
.
saat bagan dirender untuk pertama kalinya, dan terutama saat fokus bukan pada browser
Itu adalah sesuatu yang perlu diperiksa - ini mungkin terhubung ke fitur terbaru yang mencegah animasi untuk kartu / jendela browser yang tidak fokus (karena tidak perlu dianimasikan saat tidak ada yang menonton).
Saya bisa mendapatkan kode yang sesuai dengan kode yang tidak dikecilkan. Kuncinya di sini adalah menggunakan tipe deret kolom.
Demo: https://jsfiddle.net/BlackLabel/L6x08jeq/
Langkah:
_Catatan internal: _
H.pick((fx && fx.pos), 1)
bukannya fx.pos
tampaknya menyelesaikan masalah, tetapi pengujian diperlukan untuk mengonfirmasi.
@Tokopedia , terima kasih, itu masuk akal. Perbaiki bekerja :)
Bisakah Anda memperkirakan kapan perbaikan ini akan dirilis?
@rumahsakitotak
Perbaikan akan ada dalam PR minggu ini dan harus dirilis dengan versi Highcharts berikutnya.
Sementara itu:
Masalah ini disebabkan oleh fungsi animate
tidak memberikan argumen yang sesuai ke step
saat ia melewati animasi, jadi saya memperbaikinya di sana.
@Welovehonda berapa lama sampai rilis berikutnya? Kami baru saja bermigrasi dari highchart sudut dan ingin menginstal versi dengan perbaikan sebelum menggabungkan cabang fitur kami, daripada memulai dengan kode tambahan untuk memperbaiki bug, yang tidak akan ada lagi dalam beberapa hari.
Versi berikutnya (7.0.3) dijadwalkan pada akhir minggu ini
Apakah ada ETA yang diperbarui?
Tes regresi sedang berlangsung. Setelah semua masalah teratasi, versi baru akan dirilis - Saya mengharapkan rilis baru segera, maksimal beberapa hari.
Ini dirilis sekarang @yhoiseth
Manis! Terima kasih telah memberi tahu saya 🙂
Untuk beberapa alasan, GitHub tidak memberi tahu saya, meskipun saya "menonton rilis" untuk repositori ini 🤔
Saya tidak tahu mengapa Anda tidak mendapatkan notifikasi, tapi tetap saja, Anda dapat mendaftar ke milis kami: https://www.highcharts.com/blog/download/
Komentar yang paling membantu
Versi berikutnya (7.0.3) dijadwalkan pada akhir minggu ini