में गतिशील रूप से निर्भरता को इंजेक्ट करने के लिए कैसे करें मैं अभी भी एंगुलरज पर एक पदार्पणकर्ता हूं। मैं अपने नियंत्रक में गतिशील रूप से एक सेवा (जो मैंने बनाया) की निर्भरता इंजेक्ट करना चाहता हूं।नियंत्रक
लेकिन जब मैं निर्भरता के साथ एक सेवा कोड, मैं इस त्रुटि मिली:
त्रुटि: अज्ञात प्रदाता: $ windowProvider < - $ खिड़की < - बेस 64
इस नियंत्रक के कोड है।
var base64 = angular.injector(['servicesModule']).get('base64');
console.log("base64", base64.encode("my text will be encoded"));
इस कोड काम करता है:
var servicesModule = angular.module('servicesModule', []);
servicesModule.factory('base64', function() {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return window.btoa(input);
},
decode: function(input) {
return window.atob(input);
}
};
});
इस कोड काम नहीं करता: जब सेवा नियंत्रक के रूप में एक ही मॉड्यूल में है
var extModule = angular.module('ext', []);
extModule.factory('base64', ['$window', function($window) {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return $window.btoa(input);
},
decode: function(input) {
return $window.atob(input);
}
};
}]);
एक और समस्या है।
त्रुटि:: मॉड्यूल निर्भरता है है, मैं काम नहीं करता है (मैं अपने मॉड्यूल config में $ routeProvider निर्भरता) अज्ञात प्रदाता: mainModule
var mainModule = angular.module('main', [],
function($routeProvider, $locationProvider) {
//Some routing code
}
);
जे एस Fiddles से $ routeProvider निर्भरता के साथ
एक ही मॉड्यूल (नियंत्रक + सेवा): http://jsfiddle.net/yrezgui/YedT2/
विभिन्न मॉड्यूल http://jsfiddle.net/yrezgui/YedT2/4/
निर्भरता के बिना विभिन्न मॉड्यूल: निर्भरता के साथ http://jsfiddle.net/yrezgui/YedT2/5/
इन दोनों उदाहरणों को काम करना चाहिए। यदि वे समस्या नहीं करते हैं तो कुछ और होना चाहिए। यह बहुत अच्छा होगा अगर आप जेएसफ़िल्ड प्रदान कर सकें जिसे हम ठीक कर सकते हैं, ताकि हमारे पास एक छोटा सा स्निपेट की बजाय संपूर्ण ऐप हो। –