angularjs - Getting nested angular modules to inject properly -
मुझे एक फॉरेक्टरी ऑब्जेक्ट में कोण टूस्टर सेवा इंजेक्शन के साथ एक समस्या हो रही है, जब मैं टास्टर इंजेक्शन बिना त्रुटियों, एनजीएनेट इंजेक्शन टोस्टर पर विफल रहता है। जहां तक मैं बता सकता हूं कि मैंने इसे सही तरीके से किया है, इसलिए मुझे यकीन नहीं है कि मैंने यहाँ क्या याद किया है। त्रुटि संदेश:
अनक्यूट त्रुटि: [$ इंजेक्टर: मोड्यूलर] मॉड्यूल एपीटीट को इन्स्तांत करने में विफल होने के कारण सेटिंग: त्रुटि: [$ इंजेक्टर: मोड्यूलर] मॉड्यूल टोस्टर को इन्स्तांत करने में विफल के कारण: त्रुटि: [$ इंजेक्टर: मॉड्यूलर] मॉड्यूल एनजीएनिट को इन्स्तांत करने में विफल: त्रुटि: [$ injec ... & lt; छोड़ा गया & gt; ... 1) मुख्य ऐप फ़ाइल :
// आरंभिक एन्जिलर एप्लीकेशन मॉड्यूल बनाता है
var ऐप = कोणीय। मॉड्यूल ("testapp", ['कोणीतरीस्पिनर', 'एनजीआरएसओएसआर', 'यूआई.बूटस्ट्रैप ',' टोस्टर ',' app.controllers ',' app.factories ']); कोणीय। मॉड्यूल ("ऐप। कारखाना", []); कोणीय। मॉड्यूल ("एप्लिकेशन.controllers", []); फ़ैक्टरी फ़ाइल:
कोणीय.मॉड्यूल ('ऐप.फैक्टरीज')। कारखाना ('डेटाफ़ाइनर', ['$ rootScope', '$ संसाधन ($ url: "/ path / updateOrderStatus", dataType: '$ http', 'टोस्टर' "JSON", विधि: "पोस्ट", डेटा: {orderId: orderId}, हेडर: {"सामग्री-प्रकार": "एप्लिकेशन / जेसन; वर्णसेट = यूटीएफ -8"}})। सफलता (कार्य (क्रम) {टोस्टर .pop ('सफलता', "आदेश स्थिति अपडेट", "आदेश स्थिति सफलतापूर्वक अपडेट की गई।");})। त्रुटि (फ़ंक्शन () {//toaster.error("Order स्थिति अद्यतन विफल। ");})}} आंशिक टोस्टर फ़ाइल:
कोणीय। मॉड्यूल ('टोस्टर', ['एनजीएनेट'])। सेवा ('टोस्टर', ['$ rootScope ', फंक्शन ($ रूट स्कोप) {this.pop = फ़ंक्शन (टाइप, शीर्षक, बॉडी, टाइमआउट, बॉडीओटपुट टाइप) {this.toast = {प्रकार: प्रकार, शीर्षक: शीर्षक, बॉडी: बॉडी, टाइमआउट: टाइमआउट, बॉडीओटपुटटाइप: बॉडीओटपुटटाइप} ; $ रूटस्स्कोप। $ प्रसारण ('टोस्टर-नयाटॉस्ट');}; एस क्रैप्स को सूचीबद्ध करना:
"~ / scripts / angular.js", "~ / scripts / angular-resource.js", "~ / scripts / ui-bootstrap-tpls-0.10। 0.js "," ~ / scripts / spin.js "," ~ / scritps / angular-animate.min.js "," ~ / scripts / toaster.js "," ~ / scripts / apptsettingapp.js "," ~ / स्क्रिप्ट / कोणीय-स्पिनर। जेएस "," ~ / स्क्रिप्ट / डेटाफ़ैक्चर। जेएस ", इस समस्या का अद्यतन:
मुझे इसके साथ क्या मिला है समस्या, मैं एक शुद्ध अनुप्रयोग में कोणीय का उपयोग कर रहा हूँ और मेरी स्क्रिप्ट सभी मेरे आवेदन में बंडलर का उपयोग करके प्रदान की गई हैं। हालांकि स्क्रिप्ट फ़ाइल संदर्भ समान है, और टोस्टर संदर्भ सही है। यदि आप पेज पर एक टैग जोड़ते हैं, तो यह उसी लिपि की फ़ाइलों के लिए उपलब्ध है, यह ठीक काम करेगा। यह हालांकि समस्या को हल नहीं करता है, यह कारण में अधिक जानकारी देता है।
खैर,
इस मुद्दे के पीछे का कारण काफी सरल है, मैं एक ही बार एक ही नाम के साथ एक सेवा लोड कर रहा था ... हालांकि, जिसके परिणामस्वरूप व्यवहार सामान्य है यदि आप नहीं जानते कि कैसे कोणीय वस्तुओं को इंजेक्शन के साथ संभालती है एक ही नाम। मेरे मामले में मैं अपने मुख्य ऐप में टोस्टर मॉड्यूल लोड कर रहा था, जहां मैं आवेदन के लिए आवश्यक सभी मॉड्यूल तैयार करता हूं। फिर मैंने एचटीएमएल पृष्ठ पर निर्देश दिया ताकि टोस्टर संदेश प्रदर्शित कर सके, इस वजह से टोस्टर सेवा फिर से लोड हो गई, लेकिन प्रदाता के बिना (मुझे लगता है क्योंकि यह पहले से ही मुख्य एप्लीकेशन में लोड किया गया था), इसलिए प्रदाता त्रुटि
शुरू में इसे ठीक करने के लिए, मैंने पृष्ठ पर एक स्क्रिप्ट टैग जोड़ा, और सबकुछ ठीक काम किया, लेकिन जब से मैं यह एक वैश्विक मैसेजिंग परिदृश्य चाहता था, मुझे हर पेज पर एक स्क्रिप्ट टैग जोड़ने की ज़रूरत थी, इसलिए मैंने खुदाई रखी।
ऐसा तब हुआ जब मैंने निर्देश दिया कि सेवा फिर से लोड हो रही है। तो यह मुख्य मॉड्यूल में लोड हो रहा था, और उसके बाद निर्देश यह लोड कर रहा था और अंत में पृष्ठ पर स्क्रिप्ट टैग पिछले 2 लागूकरण को ओवरराइड कर रहा था। तो ठीक से फिक्सिंग एक मुख्य मुद्दा यह है कि HTML पृष्ठ से स्क्रिप्ट टैग को हटाने और पृष्ठ पर निर्देश जोड़ने से कोई समस्या नहीं है।
यह व्यवहार जिस तरह का कोणीय संभालता है, उसी तरह के ऑब्जेक्ट इंजेक्शन वाले हैं, जिसका नाम समान है, अंत में पार्टी को अंतिम जीत मिलती है।
मुझे आशा है कि यह अगले व्यक्ति को आने में मदद करेगा इस तरह से कुछ में।
Comments
Post a Comment