मेरा मानना है कि कुछ इस तरह, आपकी सेवा के भीतर काम करना चाहिए आप .Value() का उपयोग करने के इंजेक्शन
var myLocalValue = myInjectedValue || "Some default value";
के लिए कुछ वस्तुओं की घोषणा करने के मैं सुपर जावास्क्रिप्ट सामान्य बुद्धि नहीं कर रहा हूँ थे लेकिन इस पर जवाब इतना लगता है तथ्य यह है कि यह भी काम करेगा करने के लिए टाल जाना: JavaScript OR (||) variable assignment explanation
मैं काम करने के लिए मैं कैसे उम्मीद करेंगे इसे बाहर ऐसा लगता है परीक्षण करने के लिए यहाँ एक बेला बनाया:
http://jsfiddle.net/u3MY8/1/
जावास्क्रिप्ट
var app = angular.module("myapp",[]);
// define a value
app.value('myThing', 'weee');
// use it in a service
app.factory('myService', ['myThing', function(myThing, myOtherThing){
var myLocalOtherThing = myOtherThing || "some default";
return {
whatsMyThing: function() {
return myThing; //weee
},
whatsMyOtherThing: function() {
return myOtherThing;
},
whatsMyOtherThingWithDefault: function() {
return myLocalOtherThing;
}
}
}]);
// use it in a controller
app.controller('someController', function($scope, myService) {
$scope.foo = myService.whatsMyThing(); //weee
$scope.bar = myService.whatsMyOtherThing(); //""
$scope.baz = myService.whatsMyOtherThingWithDefault(); //some default
});
एचटीएमएल
<div ng-app="myapp" ng-controller="someController">
<ol>
<li>{{foo}}</li>
<li>{{bar}}</li>
<li>{{baz}}</li>
</ol>
</div>
यह केवल काम करता है ध्यान दें करने के लिए करता है, तो myOtherThing इंजेक्शन नहीं है, यदि आप सूची यह इंजेक्ट किया जा करने के लिए, लेकिन यह परिभाषित नहीं किया गया आप चलाएंगे त्रुटियों में, लेकिन मुझे यकीन नहीं है कि उपयोग का मामला क्या है।
इनिट में गणना करके और कड़ी मेहनत से गणना करने का क्या मतलब है? आप module.valstant के साथ बनाए गए मानों को अपडेट कर सकते हैं, बस मॉड्यूल.कॉन्स्टेंट नहीं, आप एनजी-इनिट का भी उपयोग कर सकते हैं, आप संभावित रूप से कुछ डेटा को असीमित रूप से ला सकते हैं, फिर इंजेक्शन मॉड्यूल स्थापित करें .value() – shaunhusain
मान लें कि मैं कॉन्फ़िगरेशन मान प्राप्त करना चाहता हूं, बनाना इसके साथ एक असीमित कॉल, एक मूल्य वापस प्राप्त करें और फिर मेरी सेवा में इंजेक्ट करें। –
या तो यदि मैं सही ढंग से समझता हूं, तो आप कुछ कॉन्फ़िगरेशन मान पढ़ते हैं जो पहले मॉड्यूल.वल्यू (कुंजी, मान) कॉल के साथ सेट किया गया था, $ इंजेक्टर.get (कुंजी) को कॉल करके मान को पकड़कर, यदि आप सुनिश्चित नहीं हैं कि इंजेक्टर को उस कुंजी के साथ कॉन्फ़िगर किया गया है जिसे आप एक कोशिश पकड़ने वाले ब्लॉक से घिरा सकते हैं और इसे किसी भी मामले में कुछ डिफ़ॉल्ट दे सकते हैं, आप मॉड्यूल का उपयोग कर सकते हैं .value() फिर से मैं इंजेक्ट करने के लिए किसी भी मान को जोड़ने या बदलने का विश्वास करता हूं। शायद आप अपने अपडेट करने से पहले सेवाओं के मूल्यों को इंजेक्शन देने वाले कोणीय से चिंतित हैं, मेरा मानना है कि $ injector.get() आपके लिए नवीनतम मूल्य पुनर्प्राप्त करेगा। – shaunhusain