दिलचस्प पोस्ट
अंतिम आईडी डालने के लिए कैसे करें? C / C + int बनाम int * (पॉइंटर्स बनाम सरणी नोटेशन)। अंतर क्या है? रिटर्न स्टेटमेंट बनाम निकास () में मुख्य () CudaMalloc () सूचक को पॉइंटर का उपयोग क्यों करता है? एक द्वितीयक मॉनीटर पर एक विंडोज़ फार्म दिखा रहा है? स्थिर वर्ग और सिंगलटन पैटर्न के बीच का अंतर? ओपन-तरफा एंड्रॉइड स्ट्रोक? अमेज़ॅन एडब्लूएस आईओएस एसडीके: फॉल्डर में सभी फाइल नामों को कैसे सूचीबद्ध किया जाए आईफ्रेम से मूल विंडो के एक्सेस तत्व आधार वर्ग चर में व्युत्पन्न क्लास ऑब्जेक्ट स्टोर करें जावास्क्रिप्ट: आदिम तारों के तरीके हैं? वर्तमान वर्ष की पहली और अंतिम तिथि कैसे प्राप्त करें क्या मैं एक `git clean -fdx` को पूर्ववत कर सकता हूं? फेसबुक आईओएस एसडीके का उपयोग करके फेसबुक की प्रतिक्रिया कैसे प्राप्त करें जावास्क्रिप्ट ऑब्जेक्ट वैरिएबल तक कैसे पहुंचा जा सकता है?

आवश्यकताओं जेएस के साथ आलसी लोडिंग AngularJS मॉड्यूल

डैन वाहलीन के महान लेख के लिए धन्यवाद, मैंने कोयंत्र के नियंत्रकों और सेवाओं के आलसी लोडिंग को लागू करने में कामयाब रहा। हालांकि, आलसी लोड स्वतंत्र मॉड्यूल के लिए एक साफ तरीका नहीं लगता है।

अपने प्रश्न को बेहतर ढंग से समझा देने के लिए, मान लें कि मेरे पास एक ऐप है जो बिना आवश्यकताओंजेएस के नीचे होता है:

// Create independent module 'dataServices' module with 'Pictures' object angular.module("dataServices", []).factory("Pictures", function (...) {...}); // Create 'webapp' ng-app, with dependency to 'dataServices', defining controllers angular.module("webapp", ['dataServices']) .controller("View1Controller", function (...) {...}) .controller("View2Controller", function (...) {...}); 

Plunker में RequireJS के साथ नमूना एप्लिकेशन यहां दिया गया है:
http://plnkr.co/aiarzVpMJchYPjFRrkwn

समस्या का मुख्य कारण यह है कि कोणीय ने तत्काल ng-app लिए निर्भरता जोड़ने की अनुमति नहीं दी है। परिणामस्वरूप, मेरा समाधान, मेरे angular.injector उपयोग angular.injector जाने वाले Picture ऑब्जेक्ट के उदाहरण को पुनः प्राप्त करने के लिए angular.injector का उपयोग angular.injector है। js/scripts/controllers/ctrl2.js फ़ाइल देखें।

यह मेरे लिए 2 समस्याएं बनाता है:

  1. इंजेक्टेड सेवाओं का कोणीय के बाहर चलता है और इसलिए सभी एसिंक कॉल $ दायरे से समाप्त होने चाहिए। $ लागू ()
  2. गड़बड़ कोड जहां कुछ ऑब्जेक्ट को इंजेक्टर का मानक इंजेक्शन सिंटैक्स का उपयोग करते हुए इंजेक्ट किया जा सकता है जबकि अन्य को इंजेक्टर का स्पष्ट इस्तेमाल की आवश्यकता होती है।

आपमें से किसी ने भी पता लगाया है कि कैसे आलसी लोड करने के लिए स्वतंत्र मॉड्यूल की आवश्यकता है और किसी भी प्रकार कोणीय निर्भरता इंजेक्शन सिंटैक्स का इस्तेमाल किया जा सकता है?

नोट :
स्वतंत्र मॉड्यूल की आलसी लोडिंग का सवाल है। इस विशिष्ट उदाहरण का एक सरल समाधान ng-app.config दौरान कैश्ड प्रदाताओं के जरिए "पिक्चर्स" ऑब्जेक्ट बनाने के लिए है, लेकिन ऐसा नहीं है जो मैं देख रहा हूं। मैं ऐसे समाधान की तलाश कर रहा हूं जो तृतीय पक्ष मॉड्यूल के साथ काम करता है जैसे कि angular-resource

Solutions Collecting From Web of "आवश्यकताओं जेएस के साथ आलसी लोडिंग AngularJS मॉड्यूल"

गिटहब में मेरी परियोजना पर एक नज़र डालें: कोणीय-आवश्यक-आलसी

इस परियोजना का उद्देश्य एक विचार प्रदर्शित करना और चर्चाओं को प्रेरित करना है। लेकिन जो आप चाहते हैं वह है ( खर्च-व्यू। जेएस जांचें , यह एनजी-ग्रिड लजेली लोड करता है)।

मुझे टिप्पणियों, विचारों में बहुत रुचि है


(संपादित करें) एनजी-ग्रिड कोणीय मॉड्यूल आलसी लोड किया गया है:

  1. expenses-view.js भरी हुई है, जब /expenses मार्ग सक्रिय है
  2. expenses-view.js एनजी-ग्रिड को निर्भरता के रूप में निर्दिष्ट करता है, इसलिए RequireJs एनजी-ग्रिड पहले लोड करता है
  3. एनजी-ग्रिड एक है जो angular.module(...) कॉल करता है। angular.module(...)

इसे पूरा करने के लिए, मैंने वास्तविक angular.module को वास्तव में बदल दिया है। मेरे साथ angular.module पद्धति, जो आलस्य का समर्थन करती है Bootstrap.js और मार्ग- initLazyModules() फ़ंक्शन initLazyModules() और callRunBlocks() )।

इस कार्यान्वयन में इसकी खामियां हैं जिनके बारे में आपको अवगत होना चाहिए:

  1. कॉन्फ़िग फ़ंक्शंस कार्यान्वित नहीं की गई हैं (अभी तक) मुझे नहीं पता कि क्या यह विनम्र रूप से कॉन्फ़िग टाइम निर्भरता प्रदान करना संभव है
  2. परिभाषाओं में मामलों का आदेश यदि सेवा A बी पर निर्भर करता है, लेकिन A को आपके मॉड्यूल में बी के बाद परिभाषित किया जाता है, तो डीआईआईएल विफल हो जाता है। इसका कारण यह है कि आलसी एंजायल प्रॉक्सी तुरंत परिभाषाओं को निष्पादित करता है, असली कोणीय के विपरीत, यह सुनिश्चित करता है कि परिभाषाओं को निष्पादित करने से पहले निर्भरता हल हो जाती है।

मैंने अपने खुद के कार्यान्वयन को अंतिम रूप दिया जिसे angularAMD कहा गया angularAMD और यहां नमूना साइट है जो इसका उपयोग करती है:

http://marcoslin.github.io/angularAMD/

यह कॉन्फ़िग फ़ंक्शंस और ऑर्डर मॉड्यूल परिभाषाओं से बाहर हैं।

उम्मीद है कि यह अन्य की तलाश में मदद कर सकता है ताकि उन्हें जरूरतजेएस और एंग्ड़ीआरएस एकीकरण के साथ मदद मिल सके।

ऐसा लगता है कि नोड। जेएस मॉड्यूल ocLazyLoad इस आलसी-लोडिंग को करने का एक तरीका निर्धारित करता है, हालांकि मुझे यकीन नहीं है कि यह कैसे किराए, प्रदर्शन-वार, अन्य उत्तरों में तरीकों की तुलना में या निर्भरता को कठोर-कोडिंग इस पर किसी भी जानकारी की सराहना की जाएगी। एक दिलचस्प बात यह है कि अन्य उत्तरों को संचालित करने के लिए RequireJS आवश्यकता RequireJS है, जबकि ocLazyLoad नहीं करता है।

ऐसा लगता है कि ocLazyLoad एक अन्य प्रदाता को परिभाषित करता है जो उस मॉड्यूल के पहले ही ocLazyLoad बाद निर्भरता को इंजेक्ट करता है। ऐसा लगता है कि यह कुछ कम-स्तर वाले कोणीय व्यवहार के रूप में, जैसे कि मॉड्यूल लोडिंग और उपलब्ध कराने के लिए आवश्यक है, इसलिए ऐसा क्यों जटिल लग रहा है। ऐसा लगता है कि यह लगभग प्रत्येक कोर $compileProvider मॉड्यूल को निर्भरता के रूप में जोड़ता है: $compileProvider , $q , $injector , ng , और बहुत अधिक