AngularJS
प्रदाताओं
खोज…
वाक्य - विन्यास
- स्थिरांक (नाम, मूल्य);
- मूल्य (नाम, मूल्य);
- कारखाना (नाम, $ getFn);
- सेवा (नाम, निर्माता);
- प्रदाता (नाम, प्रदाता);
टिप्पणियों
प्रदाता सिंगलटन ऑब्जेक्ट्स हैं जिन्हें इंजेक्ट किया जा सकता है, उदाहरण के लिए, अन्य सेवाओं, नियंत्रकों और निर्देशों में। सभी प्रदाताओं को विभिन्न "व्यंजनों" का उपयोग करके पंजीकृत किया जाता है, जहां Provider
सबसे अधिक लचीला होता है। सभी संभव व्यंजनों हैं:
- लगातार
- मूल्य
- फ़ैक्टरी
- सेवा
- प्रदाता
सेवाएँ, फैक्ट्रीज़ और प्रोवाइडर्स सभी आलसी इनिशियलाइज़्ड हैं, कंपोनेंट को इनिशियलाइज़ तभी किया जाता है जब एप्लीकेशन इस पर निर्भर हो।
सज्जाकार निकटता से संबंधित हैं। सज्जाकार इसका उपयोग व्यवहार या ओवरराइड (इसके कुछ हिस्सों) को बदलने के लिए सेवा या कारखाने के निर्माण को बाधित करने के लिए करते हैं।
लगातार
Constant
कॉन्फ़िगरेशन और रन चरणों दोनों में उपलब्ध है।
angular.module('app',[])
.constant('endpoint', 'http://some.rest.endpoint') // define
.config(function(endpoint) {
// do something with endpoint
// available in both config- and run phases
})
.controller('MainCtrl', function(endpoint) { // inject
var vm = this;
vm.endpoint = endpoint; // usage
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{ ::vm.endpoint }}</div>
</body>
endpoint = http: //some.rest.endpoint
मूल्य
Value
कॉन्फ़िगरेशन और रन चरणों दोनों में उपलब्ध है।
angular.module('app',[])
.value('endpoint', 'http://some.rest.endpoint') // define
.run(function(endpoint) {
// do something with endpoint
// only available in run phase
})
.controller('MainCtrl', function(endpoint) { // inject
var vm = this;
vm.endpoint = endpoint; // usage
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{ ::vm.endpoint }}</div>
</body>
endpoint = http: //some.rest.endpoint
फ़ैक्टरी
Factory
रन फेज में उपलब्ध है।
फ़ैक्टरी नुस्खा शून्य या अधिक तर्कों के साथ फ़ंक्शन का उपयोग करके एक नई सेवा का निर्माण करता है (ये अन्य सेवाओं पर निर्भरताएं हैं)। इस फ़ंक्शन का रिटर्न मान इस रेसिपी द्वारा बनाया गया सेवा उदाहरण है।
फैक्ट्री किसी भी प्रकार की एक सेवा बना सकती है, चाहे वह एक आदिम, वस्तु शाब्दिक, फ़ंक्शन, या यहां तक कि एक कस्टम प्रकार का उदाहरण हो।
angular.module('app',[])
.factory('endpointFactory', function() {
return {
get: function() {
return 'http://some.rest.endpoint';
}
};
})
.controller('MainCtrl', function(endpointFactory) {
var vm = this;
vm.endpoint = endpointFactory.get();
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{::vm.endpoint }}</div>
</body>
endpoint = http: //some.rest.endpoint
सेवा
Service
रन चरण में उपलब्ध है।
सर्विस रेसिपी वैल्यू या फैक्ट्री रेसिपी की तरह ही एक सर्विस का निर्माण करती है, लेकिन नए ऑपरेटर के साथ कंस्ट्रक्टर को इनवाइट करने से ऐसा होता है। कंस्ट्रक्टर शून्य या अधिक तर्क ले सकता है, जो इस प्रकार के उदाहरण द्वारा आवश्यक निर्भरता का प्रतिनिधित्व करते हैं।
angular.module('app',[])
.service('endpointService', function() {
this.get = function() {
return 'http://some.rest.endpoint';
};
})
.controller('MainCtrl', function(endpointService) {
var vm = this;
vm.endpoint = endpointService.get();
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{::vm.endpoint }}</div>
</body>
endpoint = http: //some.rest.endpoint
प्रदाता
Provider
कॉन्फ़िगरेशन और रन चरणों दोनों में उपलब्ध है।
प्रदाता नुस्खा को एक कस्टम प्रकार के रूप में परिभाषित किया जाता है जो
$get
विधि को लागू करता है।आपको प्रदाता नुस्खा का उपयोग केवल तब करना चाहिए जब आप एप्लिकेशन-वाइड कॉन्फ़िगरेशन के लिए एक एपीआई को उजागर करना चाहते हैं जो कि आवेदन शुरू होने से पहले किया जाना चाहिए। यह आमतौर पर केवल पुन: प्रयोज्य सेवाओं के लिए दिलचस्प है जिनके व्यवहार को अनुप्रयोगों के बीच थोड़ा भिन्न होने की आवश्यकता हो सकती है।
angular.module('app',[])
.provider('endpointProvider', function() {
var uri = 'n/a';
this.set = function(value) {
uri = value;
};
this.$get = function() {
return {
get: function() {
return uri;
}
};
};
})
.config(function(endpointProviderProvider) {
endpointProviderProvider.set('http://some.rest.endpoint');
})
.controller('MainCtrl', function(endpointProvider) {
var vm = this;
vm.endpoint = endpointProvider.get();
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{::vm.endpoint }}</div>
</body>
endpoint = http: //some.rest.endpoint
config
चरण के बिना परिणाम होगा
समापन बिंदु = एन / ए