2014-04-29 5 views
7

मैं एक फ़ाइल अपने स्थानीय फाइल सिस्टम पर moment.js और यह लोड हो रहा है require.js साथ इस प्रकार काम करता है कहा जाता है:Require.js आलसी लोड हो रहा है रिमोट यूआरएल

initialize: function() { 

    require(['moment'], function(data) { 
     console.log(data); 
    }); 
} 

हालांकि, अगर मैं ऐसा:

initialize: function() { 

    require(['http://momentjs.com/downloads/moment.min.js'], function(data) { 
     console.log(data); 
    }); 
} 

डेटा वापस अपरिभाषित आता है। ऐसा क्यों है? और मैं गतिशील रूप से रनटाइम पर दूरस्थ मॉड्यूल कैसे शामिल करूं?

+0

कोई त्रुटि संदेश? – Louis

+0

नहीं। बस डेटा को अनिर्धारित के रूप में लॉग करता है। – user3585419

उत्तर

7

मैंने देखा है कि कोड आप मॉड्यूल का नाम hardcodes लोड करने के लिए के रूप में moment तो मौके पर ही RequireJS कॉन्फ़िगर करते हैं ताकि आप एक ही नाम के साथ की आवश्यकता होती है सकते हैं कोशिश कर रहे हैं:

initialize: function() { 

    require.config({ 
     paths: { moment: 'http://momentjs.com/downloads/moment.min' } 
    }); 

    require(['moment'], function(data) { 
     console.log(data); 
    }); 
} 
0

मुझे लगता है कि पल के लिए यूआरएल होना चाहिए फ़ाइल नाम एक्सटेंशन के बिना यानी यह इस प्रकार की तरह दिखना चाहिए: पल: 'http://momentjs.com/downloads/moment.min'

-2

आप एक मॉड्यूल लोड करने के लिए दोनों स्थानीय और दूरदराज के एक URL से की जरूरत है, तो आप चाहिए नाम मॉड्यूल जब को परिभाषित इसे और "ऊर्फ" मॉड्यूल जोड़ें जिसे यूआरएल की तरह नामित किया गया है, के अंदर परिभाषित दोनों मॉड्यूल के साथ

उदाहरण:

//define a module NAMED "moment" using the first optional name paramter 
    define("moment", ["require"], function (require) { 
     /*module code goes here*/ 
    }); 

    //alias module to use when lazy loading from URL 
    define("http://momentjs.com/downloads/moment.min.js", ["require"], function (require) { 
     return require("moment");//returns original module 
    }); 

आप एक ब्लॉग पोस्ट मैं here लिखा में इस बारे में और अधिक पढ़ सकते हैं।

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