2012-05-31 16 views
9

मैं RequJs 2.0 (या उपयोग करने का प्रयास कर रहा हूं) का उपयोग कर रहा हूं।आवश्यकता डेटा एकाधिक डेटा-मुख्य का उपयोग कर

वर्तमान में, मेरी संपत्तियों को "सामान्य" और "कस्टम" भागों में बांटा गया है। सभी पृष्ठों को सामान्य स्क्रिप्ट का उपयोग करना चाहिए, जबकि केवल कुछ पृष्ठों को कस्टम का उपयोग करना चाहिए।

जो मैं RequJs को बता सकता हूं, एक data-main मान स्वीकार करता है जो आपकी कॉन्फ़िगरेशन रखता है और मूल रूप से आपके मॉड्यूल की आवश्यकता होती है। यह ठीक है यदि सभी पृष्ठ एक ही संपत्ति का उपयोग करते हैं, लेकिन मैं कस्टम पृष्ठों के लिए अतिरिक्त data-main स्क्रिप्ट कैसे जोड़ूं?

धन्यवाद!

उत्तर

3

अपनी सामान्य स्क्रिप्ट लोड करने के लिए अपने data-main विशेषता का उपयोग करें। कस्टम पेज पर, जहां भी आप कुछ ऐसा करने वाले हैं, जिसके लिए कस्टम मॉड्यूल की आवश्यकता होती है, बस इसे require कॉल में लपेटें। आपका मास्टर पृष्ठ (या टेम्पलेट या लेआउट या जो कुछ भी यह आपके सर्वर मंच पर कहा जाता है) इस होगा:

<html><head> 
<script language="javascript" src="require.js" data-main="general" ></script> 
</head> 

आपका कस्टम पृष्ठ मार्कअप इस तरह दिख सकता (स्मृति से वाक्य रचना, दोहरी जांच!)

<p class="funny">I'm a funny paragraph</p> 
<script language="javascript"> 
require(['funny-stuff'], function(fs) { 
    fs.doSomthing(); 
}); 
</script> 

funny-stuff मॉड्यूल केवल उन पृष्ठों द्वारा लोड किया जाएगा जो इसके लिए पूछते हैं। यदि आप कुछ पृष्ठों पर अलग मार्कअप नहीं चाहते हैं या नहीं कर सकते हैं, तो आप if कथन के अंदर require कॉल को लपेटकर अपनी मुख्य स्क्रिप्ट से निर्भरता को गतिशील रूप से लोड कर सकते हैं। general.js के भीतर:

// Determine if we need the custom module 
if (isFunnyPage()) { 
    require(['funny-stuff'], function(fs) { 
    fs.doSomething(); 
    }); 
} 

जब आप अनुकूलक चलाने सावधान, हो सकता है क्योंकि यह निर्भरता require कॉल में संदर्भित मिलेगा है, और डिफ़ॉल्ट पैकेज यह आपका मुख्य फाइल के साथ द्वारा है। तो आपको कस्टम मॉड्यूल को बाहर करने के लिए ऑप्टिमाइज़र को कॉन्फ़िगर करने की आवश्यकता होगी।

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