में स्थिरांक मैं AngularJS में एक मॉड्यूल है कि सभी बैकएंड संचार समाहित लिखा है। अधिक लचीलापन के लिए मेरे पास मॉड्यूल पर स्थिर मान के रूप में एपीआई उपसर्ग है (मान हो सकता है क्योंकि मैं इसे कॉन्फ़िगर चरण में उपयोग नहीं कर रहा हूं)। तो जैसे/AngularJS
angular.module('myapp.data').constant('apiPrefix', '/api/data');
कुछ अब मैं दो अलग अलग अनुप्रयोगों से इस मॉड्यूल का उपयोग करना चाहते हैं। एक उपयोग/एपीआई 1/डेटा और दूसरा एक/एपीआई 2/डेटा और मैं इसे एप्लिकेशन के कॉन्फ़िगर चरण के दौरान बदलना चाहता हूं। मुझे पता है कि एक प्रदाता के साथ ऐसा कैसे करना है, लेकिन एक प्रदाता रखने के लिए प्रदाता होने के कारण मुझे एक ओवरकिल लगता है। क्या मैं अनुप्रयोग कॉन्फ़िगरेशन चरण से प्रयुक्त मॉड्यूल स्थिरांक या मान संशोधित कर सकता हूं?
कुछ की तरह:
angular.module("data", [])
.value('apiPrefix', '/api/data')
.factory('display', function(apiPrefix){
return {
pref: function(){
console.log(apiPrefix);
return apiPrefix;
}
}
});
angular.module("myApp",['data'])
.config(['apiPrefix', function(prefix){
prefix = 'https:/api/data';
}])
.controller("Example", function($scope, display) {
$scope.prefix = display.pref;
});
सुनिश्चित नहीं हैं, लेकिन आप 'run' स्तर पर यह करने की कोशिश कर सकते हैं। – Chandermani
हाँ आप रन चरण पर एक मान अपडेट कर सकते हैं, और आप कॉन्फ़िगरेशन में निरंतर इंजेक्ट कर सकते हैं लेकिन चूंकि यह स्थिर है, इसे बदला नहीं जा सकता है http://stackoverflow.com/questions/13035568/angular-js-value-not -injected-इन-config – shaunhusain
तो क्या आप कह रहे हैं कि यह मॉड्यूल में एक निरंतर के बजाय एक मूल्य हो सकता है और config के बजाय आवेदन के रन मंच पर इसे संशोधित करना चाहिए? – masimplo