हल करने की विधि का उपयोग करके मेरे सभी यूनिट परीक्षण तोड़ दिए गए ... मैं इस तरह से गया, जहां सेटिंग एक सेवा है।
$q.when(settings.loadConfig()).then(function() {
console.log(settings.versionedApiUrl);
});
फिर, मैं जाँच लें कि हम पहले से ही यकीन है कि हम एक बार से अधिक का अनुरोध नहीं करते बनाने के लिए सेटिंग्स लोड कर दिया है।
class settings {
loadConfig = ():angular.IPromise<any> => {
var deferred = this.q.defer();
if(this.settingsLoaded ){
deferred.resolve({})
return deferred.promise;
}
this.http({
url:'config.json'
}).then((result) => {
if(result.data){
this.versionedApiUrl = result.data.versionedApiUrl;
this.apiServer = result.data.apiServer;
this.widgetServiceRoot = result.data.widgetServiceRoot;
this.settingsLoaded = true;
}
deferred.resolve({});
});
return deferred.promise;
}
}
धन्यवाद, मैंने साइट कॉन्फ़िगरेशन नियंत्रक बनाया है और इसे अन्य सभी नियंत्रकों पर शामिल करने के लिए इसका उपयोग किया है, जिसकी आवश्यकता है। सभी काम कर रहे हैं, लेकिन मुझे लगता है कि ऐसा करने का एक बेहतर तरीका हो सकता है। – Bunkered
क्या होगा यदि नियंत्रक मार्ग से जुड़ा हुआ नहीं है? –