2013-08-08 6 views
23

मैं AngularJS में .config और .run फ़ंक्शंस के बीच अंतर ढूंढना चाहता था। मैं मार्गों की स्थापना के लिए अपने .config का उपयोग कर रहा था, लेकिन मेरे पास मार्ग परिवर्तन शुरू करने और सफलता की घटनाओं को देखने के लिए कुछ $on है।.config, .run, AppCtrl - मार्ग कहां रखना है?

तब मैंने इस कोड को .run पर ले जाया क्योंकि मुझे .config में कुछ निर्भरता इंजेक्शन समस्याएं थीं।

अंत में मैंने इनमें से कुछ को CommonAppController पर ले जाया है जिसे मैंने अपने <body> पर सेट किया है।

मेरे पास 2 .config था और यह ठीक चल रहा था, लेकिन निश्चित रूप से यह सही नहीं है?

क्या कोई भी किस विधि का उपयोग करने के लिए थोड़ा अंतर्दृष्टि दे सकता है?

+0

क्या आप साझा कर सकते हैं कि आप सामान्य नियंत्रक में कैसे प्रबंधित करते हैं? मैंने रूट नियंत्रक का उपयोग करने और लॉगिन पेज पर रीडायरेक्ट करने का प्रयास किया है यदि उपयोगकर्ता प्रमाणीकृत नहीं है। मुद्दा यह था कि बाल नियंत्रक अभी भी बुलाया जा रहा था। किसी भी सहायताको बहुत सराहा जाएगा। – user3151766

उत्तर

69

कॉन्फ़िगरेशन ब्लॉक और रन ब्लॉक अनुप्रयोग बूटस्ट्रैप में विभिन्न बिंदुओं पर निष्पादित होते हैं, और उनके निपटान में अलग इंजेक्शन स्थानीय होते हैं। AngularJS documentation में आप जो भी पा सकते हैं उसका सारांश यहां दिया गया है।

कॉन्फ़िगरेशन ब्लॉक (module.config() के साथ पंजीकृत) प्रदाता पंजीकरण के दौरान निष्पादित हो जाते हैं, और केवल इंजेक्शन प्रदाताओं और स्थिरांक (module.provider() और module.constant() देखें)। यह आम तौर पर है जहां आप $routeProvider जैसे एप्लिकेशन-व्यापी सामान कॉन्फ़िगर करेंगे। सामग्री को बनाए जाने से पहले कॉन्फ़िगर करने की आवश्यकता है।

रन ब्लॉक (module.run() के साथ पंजीकृत) इंजेक्टर के सभी प्रदाताओं के बाद निष्पादित हो जाते हैं। अब, सभी उदाहरणों और स्थिरांक इंजेक्शन दिया जा सकता है। यह आम तौर पर है जहां आप सेवाओं को कॉन्फ़िगर करेंगे, $rootScope, ईवेंट आदि।

आपके पास इनमें से कई हो सकते हैं, और वे मॉड्यूल में पंजीकृत क्रम में निष्पादित किए जाते हैं। उदाहरण के लिए, कुछ लोग इन नियंत्रकों के मार्गों को पंजीकृत करने के लिए नियंत्रकों के प्रत्येक समूह से पहले कॉन्फ़िगरेशन ब्लॉक पंजीकृत करना पसंद करते हैं।

+0

धन्यवाद स्टीव, महान स्पष्टीकरण! तो घटनाओं को देखने के संबंध में - ग्लोबल इवेंट्स, जैसे चेंजलोकेशनस्टार्ट इत्यादि .... रन एक महान जगह की तरह लगता है लेकिन मैं वास्तव में इसे ऐप कंट्रोलर में कर सकता हूं - दूसरे पर एक का उपयोग करने का कोई कारण? धन्यवाद – Martin

-1

.config ब्लॉक प्रदाता पंजीकरण और कॉन्फ़िगरेशन चरण के दौरान निष्पादित किया जाता है। यह एक मॉड्यूल स्तर ब्लॉक है।

.run ब्लॉक कॉन्फ़िगर ब्लॉक के बाद निष्पादित किया गया है। इसका उपयोग सेवाओं और स्थिरांक को इंजेक्ट करने के लिए किया जाता है।

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