2013-08-26 30 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 changelog在這個問題上似乎沒有記錄。我可以知道這裏有什麼問題嗎?

更新:

好像AngularJS 1.0.7未壓縮版本不能正常工作。目前測試的工作版本只有AngularJS 1.0.7 Minified。

它也適用於未壓縮。

+1

它的工作原理。$適用()'?我前幾天遇到了一個類似的問題,開始消化循環就是修復。 –

+0

@BrandonTilley這非常有效!那麼'$ http'就變成了''q'',只能在摘要循環中解析?我想我應該更仔細地閱讀更新日誌。謝謝! – PSWai

+0

是的,我認爲是。我想也許我已經想象它沒有消化週期的工作,但你已經幫助我意識到我不會忘記(至少不是因爲這個:)。 –

回答

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

然後如果你可以訪問到`$ rootScope`服務,並調用`$ rootScope

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

喜歡這個!我甚至不知道爲什麼被問到的人沒有把它當作正確的答案! –

+0

啊該死的真棒!我們已經有市場營銷人員使用Optimizely來運行AB測試,現在不需要包含繁重的jQuery! – George

相關問題