2015-06-15 4 views
5

में हाईचार्ट्स का उपयोग करके लाइब्रेरी डुप्लिकेशन समस्या मुझे हाईचार्ट्स लाइब्रेरीज़ में कोई समस्या है। मैंने जैस्परॉफ्ट स्टूडियो में उपलब्ध कस्टम विजुअलाइजेशन टूल के साथ विभिन्न चार्ट बनाए हैं। वे सभी पुस्तकालयों का उपयोग नहीं करते हैं, उदा। मेरे पास एक बबल नक्शा चार्ट है जो Highmaps.js और एक स्टॉक चार्ट का उपयोग करता है जो Highstock.js का उपयोग करता है।जैस्परॉफ्ट स्टूडियो

जब मैं इसे जैस्पर्सॉफ्ट सर्वर में देखता हूं तो प्रत्येक रिपोर्ट बहुत अच्छी तरह से काम करती प्रतीत होती है।

Uncaught Highcharts error #16: www.highcharts.com/errors/16 Highcharts already defined in the page

यह त्रुटि दूसरी बार Highcharts होता है या Highstock एक ही पृष्ठ में लोड किया जाता है, तो Highcharts नाम स्थान पहले से ही परिभाषित किया गया है: लेकिन जब मैं एक डैशबोर्ड दो विभिन्न रिपोर्टों युक्त बनाने के लिए, मैं इस त्रुटि की है। ध्यान रखें कि हाईचार्ट्स। चार्ट कन्स्ट्रक्टर और हाइचार्ट्स की सभी विशेषताओं को हाईस्टॉक में शामिल किया गया है, इसलिए यदि आप संयोजन में चार्ट और स्टॉक चार्ट चला रहे हैं, तो आपको केवल highstock.js फ़ाइल लोड करने की आवश्यकता है।

मुझे समझ में आता है कि Highmaps.js और Highstock.js के बीच एक संघर्ष है क्योंकि उनके पास सामान्य विशेषताएं हैं। लेकिन मुझे नहीं पता कि इससे कैसे बचें: मुझे हाईमैप्स और हाईस्टॉक्स दोनों की विशेषताओं की आवश्यकता है। यहाँ मेरी रिपोर्ट को परिभाषित करने के लिए है कि कैसे मैं उन पुस्तकालयों में शामिल हैं:

-1st चार्ट (स्टॉक चार्ट)

define(['jquery', 'highstock'], function(hs_test) { 
    return function(instanceData) { 
    /*...*/ 
    } 
}); 

-2nd चार्ट (बुलबुला नक्शा चार्ट)

define(['jquery','highmaps','data','world','exporting'], function (mapbubble) { 
    return function(instanceData) { 
    /*...*/ 
    } 
}); 

और यहाँ कैसे है मैं मेरी build.js फ़ाइलों को लिखें:

({ 
    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" 
}) 

मैंने यहां हाईस्टॉक उदाहरण का उपयोग किया, लेकिन मैं रिपोर्ट के साथ काफी कुछ करता हूं हाईमैप्स का उपयोग करना मुझे आशा है कि मैं इस समस्या को रखने वाला पहला व्यक्ति नहीं हूं, और यदि ऐसा है, तो क्या कोई मुझे इस लाइब्रेरी डुप्लिकेशन से बचने के लिए एक तरीका सुझा सकता है?

संपादित

के रूप में सुझाव दिया है, मैं + पालन map.js highstock.js द्वारा highmaps.js की जगह करने की कोशिश की:

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.

:

define(['jquery','highstock','map','data','world','exporting'], function ($, Highcharts) { 
return function (instanceData) { 
/*...*/ 
} 
}) 

मैं अब एक त्रुटि 17 है

अब Highmaps.js से कुछ गुम है और मुझे नहीं पता कि क्या। सुझावों के लिए तत्पर हैं।

अद्यतन

मैं Highcharts-more.js शामिल करके इस त्रुटि को 17 से बच सकते हैं, लेकिन मैं अभी भी इस त्रुटि 16 दो चार्ट चलाते समय।

Javascript console

उत्तर

1

अंत में, मैं समस्या मैं अपने बुलबुला नक्शा चार्ट आकर्षित करने के लिए की जरूरत है सभी Highcharts फ़ाइलें मर्ज करके, के रूप में @ PawełFus ने सुझाव दिया समाधान कर लिया है, और Highcharts चर पर एक शर्त के साथ कोड संलग्न: फिर

if (typeof Highcharts == 'undefined') { 

/* Optimized merge files containing both highstock.js, highcharts-more.js and map.js */ 

} 

मैं इस फ़ाइल का उपयोग उन सभी हाईचार्ट चार्टों के लिए करता हूं जिन्हें मैं बनाना चाहता हूं।

यह बहुत अच्छा काम करता है। सभी को धन्यवाद, और विशेष रूप से @ PawełFus।

2

इस question पर मेरी टिप्पणी देखें:

यहाँ त्रुटियों मैं जब मैं एक ही डैशबोर्ड में मेरे दो रिपोर्टें चला रहे हैं। आपको केवल "बेस" हाईस्टॉक लोड करना होगा।जे एस और उसके बाद किसी अन्य मॉड्यूल आप उस के बाद लोड करना चाहते हैं:

<script src="code.highcharts.com/stock/highstock.js"></script> 
<script src="code.highcharts.com/stock/modules/map.js"></script> 
<script src="code.highcharts.com/stock/modules/ANOTHERMODULEYOUNEED.js"></script> 

तुम क्या आप संभवतः सिर्फ highmaps.js लोड कर सकता है के रूप में यह भी अन्य चार्ट प्रकार का एक समूह होता है की जरूरत पर निर्भर करता है।

+1

ऐसा लगता है कि ओपी विशेष रूप से RequJS के संदर्भ में पूछ रहा है। – kryger

+0

लोड ऑर्डर अभी भी लागू होगा। – wergeld

+0

हां जैसा कि @ क्रिएगर द्वारा कहा गया है, मैं केवल स्क्रिप्ट्स को शामिल करने के लिए RequJS का उपयोग कर सकता हूं। मैंने बहुत सारे संयोजन की कोशिश की है, लेकिन कोई भी काम नहीं कर रहा है। मुझे लगता है कि एकमात्र तरीका सभी हाईचरेट सुविधाओं वाली फाइल ढूंढना है। तुम क्या सोचते हो ? – Kabulan0lak

संबंधित मुद्दे