Ich habe ein Problem mit Highcharts-Bibliotheken. Ich habe verschiedene Diagramme mit dem in Jaspersoft Studio verfügbaren Werkzeug Benutzerdefinierte Visualisierung erstellt. Sie verwenden nicht die gleiche Bibliothek, z.B. Ich habe ein Bubble Map-Diagramm, das Highmaps.js verwendet, und ein Stock-Diagramm, das Highstock.js verwendet.Library-Duplikationsproblem mit Highcharts in Jaspersoft Studio
Jeder Bericht scheint sehr gut zu funktionieren, wenn ich ihn in Jaspersoft Server visualisiere. Aber wenn ich ein Armaturenbrett mit zwei differents Berichte zu erstellen, habe ich diesen Fehler:
Uncaught Highcharts error #16: www.highcharts.com/errors/16 Highcharts already defined in the page
Dieser Fehler tritt zum zweiten Mal Highcharts oder Highstock wird in der gleichen Seite geladen, so dass die Highcharts Namespace ist bereits definiert. Beachten Sie, dass der Highcharts.Chart-Konstruktor und alle Features von Highcharts in Highstock enthalten sind. Wenn Sie also Chart und StockChart in Kombination verwenden, müssen Sie nur die Datei highstock.js laden.
Ich verstehe, dass es einen Konflikt zwischen Highmaps.js und Highstock.js gibt, da sie Funktionen gemeinsam haben. Aber ich weiß nicht, wie ich es vermeiden kann: Ich brauche Features von Highmaps und Highstocks. Hier ist, wie ich diese Bibliotheken sind meine Berichte zu definieren:
-1st Chart (Stock Chart)
define(['jquery', 'highstock'], function(hs_test) {
return function(instanceData) {
/*...*/
}
});
-2nd Diagramm (Blasen-Karte Diagramm)
define(['jquery','highmaps','data','world','exporting'], function (mapbubble) {
return function(instanceData) {
/*...*/
}
});
Und hier ist, wie ich schreibe meine build.js Dateien:
({
optimize: 'none',
baseUrl: '',
paths: {
jquery: 'jquery',
highstock: 'highstock',
exporting: 'exporting',
'highstock_test': 'highstock_test'
},
shim: {
'highstock': {
deps: ["jquery"],
exports: 'Highcharts'
}
},
name: "highstock_test",
out: "highstock_test.min.js"
})
verwendete ich das Highstock Beispiel hier, aber ich habe genau das gleiche mit dem Bericht Highmaps verwenden. Ich hoffe, ich bin nicht der Erste, der dieses Problem hat, und wenn ja, kann mir jemand eine Methode vorschlagen, um diese Bibliotheksduplikation zu vermeiden?
EDIT
Wie bereits angedeutet, habe ich versucht, highmaps.js von highstock.js + map.js wie folgt ersetzt:
define(['jquery','highstock','map','data','world','exporting'], function ($, Highcharts) {
return function (instanceData) {
/*...*/
}
})
ich jetzt einen Fehler haben 17:
The requested series type does not exist
This error happens when you are setting chart.type or series.type to a series type that isn't defined in Highcharts. A typical reason may be that your are missing the extension file where the series type is defined, for example in order to run an arearange series you need to load the highcharts-more.js file.
Jetzt fehlt etwas von Highmaps.js und ich weiß nicht was. Ich freue mich auf Vorschläge.
UPDATE
ich diesen Fehler 17 Highcharts-more.js durch, einschließlich, aber ich habe immer noch diesen Fehler 16 während des Laufens zwei Karten vermeiden.
Hier sind die Fehler, die ich habe, wenn ich meine beiden Berichte in der gleichen Armaturenbrett ausführen:
Sieht aus wie OP fragt im Zusammenhang mit RequireJS speziell. – kryger
Ladeauftrag würde immer noch gelten. – wergeld
Ja, wie von @kryger gesagt Ich kann RequireJS nur verwenden, um Skripte einzuschließen. Ich habe viele verschiedene Kombinationen ausprobiert, aber niemand scheint zu arbeiten. Ich denke, der einzige Weg ist, eine Datei zu finden, die ALLE Highcharts-Funktionen enthält. Was denken Sie ? – Kabulan0lak