AngularJS app.run () प्रलेखन?


337

कैसे और कहाँ app.run()उपयोग किया जाता है? मॉड्यूल परिभाषा के बाद, उसके बाद app.config()या बाद में app.controller()?

मैं ब्रीजज एंगुलर क्यू को गोद ले रहा हूं , जो पूछता है कि क्या app.run()फ़ंक्शन में कुछ कोड चलाया जा सकता है।


2
और किसी भी कोणीय मॉड्यूल के बाद .constants () सेट किया गया है
alfonsob

जवाबों:


650

यहां कॉलिंग ऑर्डर है:

  1. app.config()
  2. app.run()
  3. निर्देशक के संकलन कार्य (यदि वे डोम में पाए जाते हैं)
  4. app.controller()
  5. निर्देश के लिंक फ़ंक्शंस (फिर, यदि पाया गया)

यहाँ एक सरल डेमो है जहाँ आप हर एक को निष्पादित कर सकते हैं (और प्रयोग करें यदि आप चाहें)।

से कोणीय के मॉड्यूल डॉक्स :

रन ब्लॉक - इंजेक्टर बनने के बाद निष्पादित हो जाते हैं और एप्लिकेशन को किकस्टार्ट करने के लिए उपयोग किया जाता है। केवल उदाहरणों और स्थिरांक को रन ब्लॉक में इंजेक्ट किया जा सकता है। यह एप्लिकेशन रन टाइम के दौरान आगे सिस्टम कॉन्फ़िगरेशन को रोकने के लिए है।

रन ब्लॉक मुख्य विधि में कोणीय में निकटतम चीज हैं। एक रन ब्लॉक वह कोड है जिसे एप्लिकेशन को किकस्टार्ट करने के लिए चलाने की जरूरत है। सभी सेवाओं को कॉन्फ़िगर करने और इंजेक्टर बनाने के बाद इसे निष्पादित किया जाता है। रन ब्लॉक में आमतौर पर कोड होता है जो यूनिट-टेस्ट के लिए कठिन होता है, और इस कारण से पृथक मॉड्यूल में घोषित किया जाना चाहिए, ताकि यूनिट-टेस्ट में उन्हें अनदेखा किया जा सके।

एक स्थिति जहां रन ब्लॉक का उपयोग किया जाता है, प्रमाणीकरण के दौरान होता है


4
@KayakDave मुझे यकीन नहीं है कि यह बंद विषय है, लेकिन आपके द्वारा ऊपर उल्लेखित रन ऑर्डर के संबंध में, सेवाएं कब शुरू की जाएंगी और उन्हें कब चलाया जाएगा?
जॉनी

3
शायद आपको @jonnieM की मदद करने में थोड़ी देर हो गई है, लेकिन सेवाओं को तब निष्पादित किया जाएगा जब वे पहले आवश्यक हों - यानी यदि आपको पहली बार किसी रन ब्लॉक में सेवा की आवश्यकता है, तो यह उस ब्लॉक से तुरंत पहले निष्पादित होगा। प्रदाताओं के लिए, क्रोधित रूप से, वे या तो ब्लॉक ब्लॉक से पहले या बाद में चलेंगे - यह कोड के अनुसार किस क्रम पर आता है। यह देखते हुए कि केवल एक बार जब आप सीधे प्रदाता का उपयोग करते हैं, तो यह कॉन्फ़िगरेशन चरण में होता है, यह सही नहीं लगता है।
जेक सेठ

2
नमस्ते, मैंने
फोर्कलिफ्ट

1
बहुत बढ़िया। पूरी तरह से होने के लिए, app.constant () फ़ंक्शंस सब कुछ होने से पहले ही लागू हो जाते हैं ... और app.factory () और अन्य सेवा फ़ंक्शंस "आलसी" हो जाते हैं। दूसरे शब्दों में, कोणीय सेवा प्रदान करने के लिए दिए गए फ़ंक्शंस का उपयोग केवल तभी करता है जब नियंत्रक या किसी अन्य सेवा को इसे इंजेक्ट करने की आवश्यकता होती है, भले ही यह ऐप के आरंभ होने के बाद लंबा हो।
निको बेलिक

एक आयोनिक परियोजना में, डिफ़ॉल्ट रूप से कॉन्फ़िगर से पहले कहा जाता है। ऐसा क्यों है ?
रायजैक्स

28

विशेष रूप से ...

कैसे और कहाँ app.run()उपयोग किया जाता है? मॉड्यूल परिभाषा के बाद या बाद में app.config(), के बाद app.controller()?

कहाँ पे:

अपने पैकेज में /packages/dashboard/public/controllers/dashboard.js

किस तरह:

इसे इस तरह बनाओ

var app = angular.module('mean.dashboard', ['ui.bootstrap']);

app.controller('DashboardController', ['$scope', 'Global', 'Dashboard',
    function($scope, Global, Dashboard) {
        $scope.global = Global;
        $scope.package = {
            name: 'dashboard'
        };
        // ...
    }
]);

app.run(function(editableOptions) {
    editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.