मेरे पास दो फाइलें हैं जिनमें मैं अपने कोणीय ऐप में सेवाओं को परिभाषित करता हूं, लेकिन जब मैं उन्हें अपने निर्देश में दोनों का उपयोग करने का प्रयास करता हूं, तो मुझे एक त्रुटि मिलती है कि सेवा प्रदाता नहीं मिला है जो भी निर्देश मैं दूसरे को परिभाषित करता हूं। ऐसा लगता है कि एक सेवा दूसरे को ओवरराइट कर रही है। अगर मैं service2.js में मॉड्यूल परिभाषा myapp.services2 में बदलता हूं, तो यह काम करता है। मुझे लगता है कि मैं इस तरह के मॉड्यूल में कई कारखानों को जोड़ सकता हूं। क्या कोई यह बता सकता है कि मैं गलत तरीके से क्या कर रहा हूं?विभिन्न फाइलों में एक ही मॉड्यूल के लिए सेवाओं को परिभाषित करने वाले angularjs
service1.js:
var services = angular.module('myapp.services',[]);
services.factory('Service1', function() {
// service code
});
service2.js:
var services = angular.module('myapp.services',[]);
services.factory('Service2', function() {
// service code
});
mydirective.js:
angular.module('myappdirective', []).directive('myapp', ['Service1', 'Service2',
function(service1,service2) {
// directive code
}]);
आप दो बार सेवा मॉड्यूल को परिभाषित कर रहे हैं। आपको केवल इसे एक बार परिभाषित करने की आवश्यकता है (एक फ़ाइल में)। मेरी सबसे हाल की परियोजना में, मैंने var सेवाओं = angular.module लाइन को अपनी जेएस फ़ाइल (निश्चित रूप से ओवरकिल) में स्थानांतरित कर दिया। – aet
इसे दूसरी बार देखना नहीं चाहिए और इसे फिर से परिभाषित नहीं करना चाहिए? –
यदि आप इंजेक्शन सरणी को हटाते हैं तो मुझे लगता है कि यह इस तरह से काम करेगा - angular.module ('myapp.services'); – aet