2012-10-12 13 views
5

मुझे निम्न आवश्यकताएँ जेएस कॉन्फ़िगरेशन मिला है। पैकेज/इमेजिंगएक्स मॉड्यूल को संदर्भित करने का प्रयास करते समय मैं हमेशा अनिश्चित हो जाता हूं, भले ही मैं देख सकूं कि स्क्रिप्ट को फ़ायरबग में लोड किया गया है। यदि मैं js फ़ाइल को baseUrl निर्देशिका में प्रश्न में ले जाता हूं और पैकेज को हटा देता/यह अपेक्षा के अनुसार काम करता है।RequJS लोडिंग स्क्रिप्ट फ़ाइल लेकिन पास संदर्भ संदर्भ अपरिभाषित

मैं क्या गलत कर रहा हूं?

:

window.requirejs.config(
     { 
      baseUrl: '/Scripts', 
      paths: { 
       "jquery": "./jquery-1.7.1.min", 
       "jqx": "/Content/Plugins/jqWidgets", 
       "package" : "/Scripts/packages" 
      }, 
      urlArgs: "bust=" + (new Date()).getTime(), 
      shim : { 
       'jqx/jqxcore': ['jquery'], 
       'jqx/jqxsplitter': ['jquery','jqx/jqxcore'] 
      } 
     } 
    ); 

    window.require(['jquery', 'layoutManager', 'container', 'package/ImagingX'], 
     function ($,lm,container,px) { 

      px.Focus(); 

      $(document).ready(function() { 
       lm.Init(); // Sets up panes 
       container.Init(); //Set up the containers 
      }); 
    }); 

अद्यतन 15/10/2012

मैं अब इस समस्या को हल करने के लिए बेताब हो रही है, मैं वापस मूल बातें इसलिए यहाँ के लिए सब कुछ छीन लिया है नए मुख्य फाइल है

(function() { 

    requirejs.config({ 
     paths: { 
      "packages": "packages" 
     } 
    }); 

    require([ 
      'packages/testmodule' 
     ], 
     function (tm) { 
       alert(tm); 
    }); 

})(); 

और मॉड्यूल जो उप फ़ोल्डर में है जिसे पैकेज कहा जाता है।

define('testmodule', 
function() { 

    alert("called"); 

    return { 
     set : 'rar '  
    }; 

}); 

मैं लिपि को लोड कर सकता हूं लेकिन इसे कभी भी निष्पादित नहीं किया जाता है, इसलिए मुझे इसके लिए कोई संदर्भ नहीं मिलता है। चीजों की

enter image description here

उत्तर

3
requirejs.config({ 
     paths: { 
      //"jquery": "./jquery-1.8.2.min", 
      //"jqx": "/Content/Plugins/jqWidgets", 
      "templates": 'templates', 
      "text": "commonRequireJsModules/text", 
      "domReady": "commonRequireJsModules/domReady", 
      "packages" : 'packages/' 
      //'signalR': './jquery.signalR-0.5.3.min', 
      //'knockout': './knockout-2.1.0', 
      //'pubsub' : './pubsub' 
     } 
     //,urlArgs: "bust=" + (new Date()).getTime() 
     //, 
     //shim : { 
     // 'jqx/jqxcore': ['jquery'], 
     // 'jqx/jqxsplitter': ['jquery', 'jqx/jqxcore'], 
     // 'signalR': ['jquery'], 
     // 'pubsub' : ['jquery'] 
     //} 
    }); 

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

define(['deps'],function(deps){ 
}); 

बजाय

define('myMod',['deps'],function(deps){ 
}); 
1

युगल:

  • यह window.require के बजाय सिर्फ 'शिम' में
  • नाम 'पथ' में नाम से मेल खाना चाहिए की आवश्यकता उपयोग करने के लिए अजीब लगता है, यह नहीं है मामला है, यहाँ
  • document.ready की आवश्यकता से मुक्त करने के लिए किया जाता है, कोई जरूरत नहीं इसे फिर से कर

तो: क्या आपके पास अपने जेएस कंसोल में कोई लोडिंग त्रुटि है? क्या यह कहता है कि एक स्क्रिप्ट गायब है?

यहाँ, एक काम विन्यास की आवश्यकता होती है रूटर इस कोड का एक ही फ़ोल्डर में है:

require.config({ 
    paths:{ 
     'jquery':'lib/jquery.min', 
     'backbone':'lib/backbone.min', 
     'underscore':'lib/underscore.min', 
     'router':'Router' 
    }, 
    shim:{ 
     'backbone':{ deps:['jquery', 'underscore'] }, 
     'router':{ deps:['backbone'] } 
    } 
}); 

require(['router', 'jquery', 'underscore', 'backbone'], 
    function (Router) { 
     var router = new Router(); 
     $('img').hide(); 
    }); 
}); 

और index.html:

<html> 
<head> 
    <script data-main="assets/js/App.js" src="assets/js/lib/require.min.js"></script> 
</head> 
<body>...</body> 
</html> 
+0

अजीब बात स्क्रिप्ट requireJS से भरी हुई है मैं फ़ायरबग में लोड, बस कोई संदर्भ नहीं देख सकता है कि लग रहा है। jqx शिम से मेल खा रहा है शायद मैंने इसे गलत समझा है। – RubbleFord

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