मैं एक यूआई रूटर कुछ इस तरह (सादगी के लिए छंटनी की) में परिभाषित किया गया है का उपयोग करते हुए:AngularJS यूआई रूटर में कारखाना/सेवा का संकल्प निर्भरता
$stateProvider
.state('someState', {
resolve: {
model: ['modelService', 'info', function (modelService, info) {
return modelService.get(info.id).$promise;
}]
},
controller: 'SomeController'
});
यह someState
राज्य एक कारखाने उपयोग कर रहा है/सेवा है जो कि model
पर निर्भर है हल। यह कुछ इस तरह परिभाषित किया है, और AngularJS एक अज्ञात प्रदाता फेंकता है: modelProvider < - मॉडल < - someService त्रुटि यहाँ:
angular
.module('someModule')
.factory('someService', someService);
someService.$inject = ['model'];
function someService(model) { ... }
इस राज्य के नियंत्रक के अंदर
हालांकि, एक ही model
संकल्प का उपयोग कर काम करता है ठीक:
SomeController.$inject = ['model'];
function SomeController(model) { ... }
तो मैं समझ रहा है कि यूआई रूटर जब तक संकल्प, क्या हो रहा है जो AngularJS एक त्रुटि फेंक नहीं करने की अनुमति देता SomeController
की डि में देरी कर रहा है। हालांकि, someService
पर निर्भरता के रूप में उस संकल्प को डालते समय भी वही विलंब नहीं हो रहा है? संकल्प केवल नियंत्रकों पर काम करते हैं? और यदि ऐसा है, तो मैं कारखाने/सेवा के अंदर एक संकल्प का उपयोग कैसे कर सकता हूं?
जो आप पूछ रहे हैं वह सभी एक बहुत ही परिपत्र निर्भरता श्रृंखला की तरह लग रहा है। सेवा को संकल्प पर निर्भर होने की आवश्यकता नहीं होगी, लेकिन – charlietfl