2013-09-06 4 views
9

में आवश्यकताएं कॉन्फ़िगरेशन मैं requjs का उपयोग कर रहा हूँ। मेरी main.js सामग्री निम्नलिखित की तरह है।विभिन्न फ़ाइल

requirejs.config({ 
    async: true, 
    parseOnLoad: true, 
    packages: [], 
    paths: { 
     jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min' 
    } 
}); 

require(["login"], function (loginService) { 

    loginService.login('validUser'); 

}); 

अब, मेरे कॉन्फ़िगरेशन तत्व कम हैं। लेकिन बाद में, मैं पैकेज, पथ और अन्य जोड़ दूंगा, इसलिए require.config लाइनें बढ़ेगी।

  1. मैं अलग एक अलग फ़ाइल के रूप में require.config करना चाहते हैं और इसका इस्तेमाल करते हैं?
  2. यदि jquery लोड विलंब होता है, तो क्या त्रुटि होती है? मेरी अन्य जावास्क्रिप्ट फाइलें इसका उपयोग कर रही हैं।

उत्तर

1
  1. आप एक अलग जे एस फ़ाइल में config डाल सकते हैं, कि एक समस्या नहीं है। बस सुनिश्चित करें कि फ़ाइल से पहले लोड की गई है() अपने मुख्य कोड में कॉल करें।

  2. आप अन्य लिपियों कि requireJS के माध्यम से लोड नहीं कर रहे हैं के लिए jQuery का उपयोग कर रहे हैं, तो आप मिल जाएगा त्रुटियों अगर वे jQuery की तुलना में जल्दी लोड करने के लिए होता है। आपको क्या करना है उन सभी स्थिर फ़ाइलों को जरूरी जेएस मॉड्यूल में परिवर्तित करें और आवश्यकताएँ जेएस के माध्यम से उन्हें लोड करें। प्रत्येक मॉड्यूल में define() फ़ंक्शन का उपयोग करके, आप निर्भरता सेट अप कर सकते हैं, इसलिए सभी मॉड्यूल jQuery को अपने कोड को निष्पादित करने से पहले लोड करने की प्रतीक्षा करेंगे।

+3

गैर-एएमडी जेएस के आसपास परिभाषित करने से बचने के लिए आप शिम्स (http://requirejs.org/docs/api.html#config-shim) का भी उपयोग कर सकते हैं। –

+0

पॉल - यह बहुत सही है और इसका उपयोग jQuery प्लगइन के लिए किया जा सकता है और इस तरह - अधिक जानकारी के लिए, http://requirejs.org/docs/api.html#config-shim देखें –

13

हाँ आप अपने config की आवश्यकता हो सकती है इससे पहले कि आप कुछ और की आवश्यकता होती है, इस तरह है :

config उदाहरण:

require.config({ 
    baseUrl: '/Public/js', 
    paths: { 
     jquery: '../../Scripts/jquery-1.10.2.min', 
     jqueryui: '../../Scripts/jquery-ui-1.10.2.min', 
    }, 
    shim: { 
     jqueryui: { 
      deps: ['jquery'] 
     }, 
    } 
    waitSeconds: 3 
}); 

और, तो मैं इसे लोड:

require(['/Public/js/config.js'], function() { 
    require(['home/index'], function() {     
    }); 
}); 

बस इतना ध्यान रखें कि आप पहले की आवश्यकता होती है-बयान में पथ से config.js संदर्भ के बाद से यह लोड नहीं की गई क्योंकि require.js baseurl से हल नहीं किया जा सकता है। जब आप आंतरिक आवश्यकता() - कथन प्राप्त करते हैं, तो यह लोड होता है और आप baseUrl से संबंधित निर्भरताओं का संदर्भ दे सकते हैं।

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