2012-05-05 16 views
9

के साथ मुख्य पैरामीटर मैं सोच रहा हूं कि डेटा-मुख्य पैरामीटर के साथ आवश्यकताएँ जेएस को पैरामीटर पास करने का कोई तरीका है या नहीं।आवश्यकताएँ जेएस और डेटा-मुख्य

<script data-main="Main" src="lib/require/require.js"></script> 

मैं लागू कर सकते हैं वैश्विक:

<script> 
    var mainId = "Main"; 
    var mainTarget = "body"; 
</script> 
<script data-main="Main" src="lib/require/require.js"></script> 

लेकिन मैं अगर वहाँ यह करने के लिए एक क्लीनर तरीका था सोच रहा था। धन्यवाद!

संपादित करें:

साइमन, यह एक महान योजना मैं mainTarget मूल्य के लिए लगता है कि है।

require([ 
    'plugins/load!./'+mainId+'.htm', 
    'plugins/load!./'+mainId+'.css' 
],function(html,css){ 
    var Main = function(){ 
     this.__proto__ = mainTarget; 
    } 
    new Main(); 
} 

मैं इसे मुख्य आईडी में कैसे लागू करूं? वैश्विक का उपयोग

global.js

define({ 
    foo: 'test', 
    bar: 'red' 
}); 

:

+0

संभव डुप्लिकेट [एएमडी (require.js) का उपयोग करते समय कैसे Backbone.js में बूटस्ट्रैप मॉडल लोड करने के लिए] (http://stackoverflow.com/questions/9916073/how-to-load-bootstrapped-models-in-backbone-js-while-using-amd-require-js) –

उत्तर

15

एक तरह से इस लक्ष्य को हासिल करने के लिए एक वैश्विक या आम मॉड्यूल बनाने के लिए और सिर्फ एक निर्भरता के रूप में इसका इस्तेमाल करते है

require(['global'], function(global) { 
    console.log(global.foo) // 'test' 
}); 

यह जेएस फ़ाइल के भीतर होने वाली वैश्विक वस्तु गुणों पर निर्भर करता है। यह HTML पृष्ठ में सर्वर पक्ष से डेटा जेएस ऑब्जेक्ट में आउटपुट करने के लिए भी एक आम पैटर्न है। ऐसा करने के लिए आप बस अपना मॉड्यूल एक नाम दें।

<head> 
    <script> 
     define('global', { 
      mainId: 'Main', 
      mainTarget: 'body' 
     }) 
    </script> 
</head> 

main.js

require(['global'], function(global) { 
    console.log(global.mainId) // 'Main' 
}); 

यदि आप एक मॉड्यूल है कि एक वैश्विक संपत्ति की जरूरत को परिभाषित है, बस एक निर्भरता के रूप में global मॉड्यूल निर्धारित किया है।

तुम भी priority विन्यास विकल्प का उपयोग सुनिश्चित करने के लिए अपने वैश्विक मॉड्यूल और कुछ से पहले भरी हुई है सकते हैं - http://requirejs.org/docs/api.html#config

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