2013-08-26 10 views
14

मैंने त्वरित सत्यापन के लिए विकास के दौरान ब्राउज़र कंसोल में AngularJS सेवाओं का परीक्षण किया है। जिस तरह से मैं कंसोल में एक सेवा इंजेक्षन this question या

var $inj = angular.injector(['myApp']); 
var serv = $inj.get('myService'); 
serv.doSomething(); 

AngularJS 1.0.7 के साथ पूरी तरह काम कर रहा था कि में वर्णन के रूप में है। हालांकि, 1.1.5 तक अपग्रेड करने के बाद, यह अब ऐसी सेवाओं के लिए काम नहीं करता है जो $http सेवा का उपयोग करते हैं, कि कोई xhr भेजा नहीं जाएगा।

मैंने सीधे $http इंजेक्शन का परीक्षण किया है, यह भी काम नहीं करता है। एंगुलरजेएस चेंजलॉग में इस मुद्दे पर कोई रिकॉर्ड नहीं है। क्या मुझे पता चलेगा कि समस्या क्या है?

अद्यतन:

यह AngularJS 1.0.7 असम्पीडित संस्करण के रूप में अच्छी तरह से काम नहीं करता है की तरह लगता है। वर्तमान में परीक्षण कार्य संस्करण केवल AngularJS 1.0.7 छोटा है।

यह असंपीड़ित के लिए भी काम करता है।

+1

यह काम करता है अगर आप '$ rootScope' सेवा के लिए उपयोग हो और फोन' $ rootScope। $ (लागू) '? मैं दूसरे दिन एक तरह की तरह की समस्या में भाग गया, और एक पाचन चक्र को मारना ठीक था। –

+0

@ ब्रैंडन टिली जो शानदार रूप से काम करता है! तो '$ q'' $ q' जैसा बदल गया है जिसे केवल एक पाचन चक्र में हल किया जाएगा? मुझे लगता है कि मुझे चेंजलॉग को और अधिक बारीकी से पढ़ना चाहिए। धन्यवाद! – PSWai

+0

हाँ, मुझे ऐसा लगता है। मैंने सोचा कि शायद मैंने कल्पना की थी कि यह एक पाचन चक्र के बिना काम कर रहा है, लेकिन आपने मुझे यह समझने में मदद की है कि मैं अपने दिमाग से बाहर नहीं हूं (कम से कम इस वजह से नहीं। :) –

उत्तर

40
$http = angular.element(document.body).injector().get('$http'); 

तो

$http.get(...) // or post or whatever 
+2

प्यार किया! मुझे यह भी नहीं पता कि क्यों पूछा गया व्यक्ति सही जवाब के रूप में निर्दिष्ट नहीं करता है! –

+0

आह अरे यह कमाल है! हमारे पास एबी परीक्षण चलाने के लिए ऑप्टिमाइज़ली का उपयोग कर मार्केटियर हैं और अब भारी jQuery भी शामिल करने की आवश्यकता नहीं है !! – George

संबंधित मुद्दे