2012-09-13 31 views
6

तो मैं jquery.flot और jquery.flot.selection के साथ काम कर रहा हूं और परिभाषित होने के बाद ({... मॉड्यूल को असीमित रूप से लोड करता है मुझे समस्या है क्योंकि चयन प्लगइन खुद को $ .plot.plugins (जो jquery.flot द्वारा बनाया गया है) में धक्का देने की कोशिश कर रहा है, लेकिन उस पल में $ .plot.plugins अभी भी परिभाषित नहीं किया गया है।को शिम सेटअप की आवश्यकता है- jquery.flot/jquery.flot.selection

मैंने पाया कि "शिम" तर्क की आवश्यकता है .config मुझे इस के साथ मदद करनी चाहिए, लेकिन मैं कोई भाग्य हो रहा है ... इसलिए यहाँ प्रक्रिया इस प्रकार हैः ... jquery.flot $ .plot बनाता है और jquery.flot.selection $ .plot.plugins

को ही कहते हैं

मैंने जो कोशिश की है ...

shim:{ 
    'js/lib/jquery.flot':{ 
     exports:'$.plot' 
    }, 
    'js/lib/jquery.flot.selection':{ 
     deps:['js/lib/jquery.flot'] 
    } 
} 

भी

shim:{ 
    'js/lib/jquery.flot.selection':['js/lib/jquery.flot'] 
} 

मेरी प्लगइन इस तरह दिखता है ..

define(['jquery','lib/jquery.flot','lib/jquery.flot.selection'], function() { 
(function($) { 
    // jQuery plugin definition 
..... 

मैं भी

define(['jquery'],function(){ 
require[('js/lib/jquery.flot.selection'],function(){ 
//jQuery plugin definition 
... 

मुझे क्या करना चाहिए की कोशिश की ???

+1

यह पता चला है कि मैं RequJs 1.0.4 का उपयोग कर रहा हूं, इसलिए मैं शिम पर भरोसा नहीं कर सकता ... मैं क्या कर सकता हूं? – Joe

+0

शिम Use.js द्वारा प्रेरित था जो 1.x के लिए एक प्लगइन है - http://tbranyen.com/post/amdrequirejs-shim-plugin-for-loading-incompatible-javascript –

+0

बहुत बढ़िया! इसलिए मैंने इसे अपनी प्लगइन में जोड़ा "परिभाषित ([" jquery "," lib/jquery.flot "," lib/use! lib/jquery.flot.selection "]," और यह मेरी स्थानीय आवश्यकता के लिए " पथ: { ... उपयोग: '../../../../otherDirec/src/main/webapp/js/lib/use' }, उपयोग: { "../../ ../../ अन्यडिरेक/src/main/webapp/js/lib/jquery.flot.selection ": { deps: [" उपयोग करें! ../../../../ अन्यडिरेक/src/main /webapp/js/lib/jquery.flot "] } }" और मुझे अभी भी एक त्रुटि मिल रही है कि मॉड्यूल 'lib/jquery.flot.selection' अपरिभाषित है या इसमें 'उपयोग' कॉन्फ़िगर नहीं है। सुनिश्चित करें कि यह मौजूद है, 'उपयोग' कॉन्फ़िगरेशन जोड़ें, या उपयोग का उपयोग न करें! – Joe

उत्तर

5

भविष्य में इसमें भाग लेने वाले किसी भी व्यक्ति के लिए, समस्याओं का निदान करने की आवश्यकता होने पर RequJS थोड़ा अपारदर्शी हो सकता है। Here's उपयोग मॉड्यूल के बिना jquery.flot और jquery.flot.selection के साथ RequJS 2 का एक कार्य उदाहरण है।

यह कहना मुश्किल है कि इस उदाहरण और उपरोक्त प्रश्न के बीच क्या अलग है, इस प्रकार अपर्याप्तता!

require.config({ 
    shim: { 
     'jquery': { 
      exports: '$' 
     }, 
      'jquery.flot': { 
      deps: ['jquery'], 
      exports: '$.plot' 
     }, 
      'jquery.flot.selection': { 
      deps: ['jquery.flot'] 
     } 
    }, 
    paths: { 
     'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min', 
      'jquery.flot': '//cdnjs.cloudflare.com/ajax/libs/flot/0.8.1/jquery.flot.min', 
      'jquery.flot.selection': 'https://raw.github.com/flot/flot/master/jquery.flot.selection' 
    } 
}); 

require(['jquery', 'jquery.flot', 'jquery.flot.selection'], function ($) { 
    // jQuery plugin definition 
    console.log($.plot); 
    $('#x').text($.plot.plugins); 
});