मेरी सेवा को एक मान को असीमित रूप से पुनर्प्राप्त करने की आवश्यकता है, लेकिन एक बार मेरे पास यह है, तो मैं मान के कैश किए गए संस्करण का उपयोग करना चाहता हूं।कोणीय सेवा कैश एक मान
जब दो नियंत्रक इस सेवा को कॉल करते हैं, तो मैं उम्मीद करता हूं कि पहले व्यक्ति को पुनर्प्राप्त मूल्य कैश करने के लिए और दूसरा कैश किए गए मान का उपयोग करने के लिए, लेकिन लॉग के अनुसार, मुझे कैश किए गए मान को कभी नहीं मिला। जब यह चलता है, तो मुझे एक लॉग संदेश दिखाई देता है जो दिखाता है कि मूल्य कैश किया जा रहा है, फिर, जब मैं एक अलग नियंत्रक के कोणीय मार्ग का पालन करता हूं, तो मुझे नहीं लगता कि सेवा कैश्ड मान पाती है। क्यों यह मेरी अपेक्षा के अनुसार नहीं चलती है ** **
angular.module('myApp.services').factory('Config', function() {
var Config = { };
Config.currentYear = function() {
if (Config._currentYear) {
// sadly, we never execute here
console.log("returning cached year");
return Parse.Promise.as(Config._currentYear);
}
return Parse.Config.get().then(function(config) {
console.log("caching year");
Config._currentYear = config.get("currentYear");
return Config._currentYear;
});
};
return Config;
});
एक जोड़े नोट: (1) मैं कैश की गई विशेषता _currentYear नाम है, अंडरस्कोर समारोह नाम के साथ टकराने से बचने के लिए जोड़ने। यकीन नहीं है कि मुझे ऐसा करने की ज़रूरत है। (2) जब मूल्य कैश किया जाता है तो मैं एक पूर्ण वादा करता हूं, इसलिए फ़ंक्शन हमेशा एक वादा देता है ... यह भी सुनिश्चित नहीं है कि इसकी आवश्यकता है, लेकिन यह समझें कि इससे चोट नहीं पहुंची है।
तो समस्या वास्तव में क्या है? – dfsq
यह कोड के तहत सही प्रश्न में कहा गया था। मैंने प्रश्न भाग को कोड – user1272965
से ऊपर ले जाया है अन्य समान प्रश्नों की जांच की? http://stackoverflow.com/questions/15100020/using-angular-service-to-share-data-between-controllers – ochi