1

highcharts/modules/canvas-tools.js を使用しようとしている ruby​​-on-rails アプリがあります。このアプリを継承しましたが、ハイチャート ファイルはその中に存在しません。私は JavaScript についてよく知らないので、アプリがアセットをどのように使用するかさえわかりません。チャートを表示するはずのページが表示されません。グラフを表示しようとすると、Chrome コンソールに次のエラーが表示されます。

Uncaught TypeError: Cannot read property 'prototype' of undefined 

コンソールは次の行を参照します。

// Extend CanVG renderer on demand, inherit from SVGRenderer
extend(CanVGRenderer.prototype, SVGRenderer.prototype);

そして、highcharts ファイルの最後に:

}(Highcharts));

ここに私のapplication.jsがあります:

//= require jquery
//= require jquery-ui-1.10.2.custom
//= require twitter/bootstrap
//= require highcharts
//= require highcharts/modules/canvas-tools
//= require highcharts/modules/exporting
//= require bootstrap-typeahead
//= require rails
//= require autocomplete-rails
//= require_tree .

$(document).ready(function()     {
    $('.dropdown-toggle').dropdown();
} );

$(document).ready(function() {
    $('.popover-myasset').popover();
});

他のケースでは、highcharts が複数回読み込まれたというエラーが表示されましたが、Highstock を使用していないため、明らかにこのエラーの原因です。エラー メッセージへのリンク: http://highcharts.com/errors/16

あなたが提供できるアドバイスをありがとう。

4

3 に答える 3

2

私もこのエラーがありました-

キャッチされていない TypeError: 未定義のプロパティ 'prototype' を読み取れません

それを修正するために、これを2931行目に追加しました-

CanVGRenderer = (typeof(Highcharts.CanVGRenderer) != "undefined"
    ? Highcharts.CanVGRenderer : {},

拡張関数 (highcharts.src.js の 128 行目) は、変数が渡されたときに基本的にまったく同じことを行うためです。

また、canvas-tools.src.js の 2897 行目 -

if (CanvasRenderingContext2D) 

IEでも同様にエラーをスローします。このセクションは、2013 年 5 月 7 日に更新された canvg.js からのものですが、ハイチャートでは更新されていません。

if (typeof(CanvasRenderingContext2D) != 'undefined')
于 2013-07-30T20:19:17.997 に答える
1

開発チームによると:

canvas-tools は、スクリプト ファイルに含めることは想定されていません。代わりに、Highcharts はオンデマンドで遅延ロードします。http://api.highcharts.com/highcharts#global.canvasToolsURLを参照してください。

https://github.com/highslide-software/highcharts.com/issues/2311

于 2014-06-20T19:47:38.190 に答える
0

いくつかの問題がありました。私がしたことは、すべての状況でうまくいかないかもしれません。

ハイチャートの require ステートメントを、使用したビューにちなんで名付けられたフォルダーとファイルに配置しました。

app/assets/
-javascripts
--foos
---foos.js
--application.js

foos.js には以下が含まれます。

//= require highcharts
//= require highcharts/modules/canvas-tools
//= require highcharts/modules/exporting
于 2013-06-25T13:02:18.570 に答える