2014-07-01 43 views
4

我將一些核心角色移植到新項目中。現在我得到了注入錯誤,但stacktrace/angular錯誤頁面沒有顯示違規注入錯誤的類名。我得到的全部是

Error: $injector:modulerr 
Module Error 

通常在那裏有一個類名。現在我必須經歷每一個類(幾十個和幾十個)並手動檢查導入。沒有更好的方法嗎?我剛剛看到這個情況,只是添加了類。有時它會顯示缺失注射的名稱,有時它會空白,否則堆棧跟蹤正確識別缺失/不良注射。

是否有一些額外的調試模式,我可以得到這些信息?

全(無用)堆棧跟蹤:

Failed to instantiate module FSApp due to: 
Error: [$injector:modulerr] http://errors.angularjs.org/1.2.16/$injector/modulerr?p0=FSApp&p1=Error…cape%2Fmain%2Fresources%2Flib%2Fangular-1.2.16%2Fangular.min.js%3A32%3A445) 
    at Error (native) 
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:6:450 
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:332 
    at Array.forEach (native) 
    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280) 
    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445) 
    at http://fs/main/resources/lib/angular-1.2.16/angular.min.js:33:18 
    at Array.forEach (native) 
    at q (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:7:280) 
    at e (http://fs/main/resources/lib/angular-1.2.16/angular.min.js:32:445 

如果你想嘗試重現此,提交更改。在這裏和那裏刪除幾個文件。運行你的角度應用。如果你刪除了足夠的空間,你很快就會空白注射器錯誤

+0

您是否最近從Angular 1.2之前升級到1.2.x? –

+0

不是。原來的應用程序工作100%。我簡直就是將一個項目複製到一個新文件夾中,並開始刪除與新項目無關的文件。這讓我在重構代碼等其他情況下感到沮喪。 – FlavorScape

+0

考慮到依賴性錯誤是開發者面臨的最常見的編譯器錯誤http://www.itworld.com/big-data/424262/why-software-builds-fail,Angular在提供信息方面如此糟糕,這讓人感到很難過。 – FlavorScape

回答

2

的一些技巧和竅門:

一個similar injector error answer適用於這裏:設置一個破發點上的角度誤差代碼,並期待在調用堆棧。

此外,偶爾點擊堆棧頂部的鏈接追蹤到一個頁面(沒有類名稱),但頁面的錯誤有另一個堆棧跟蹤鏈接。點擊該鏈接,第二頁可能有缺失對象的名稱。另外,如果你還沒有移動到註釋代碼(這可以更容易地發現注射器錯誤)在1.3或更高角度,你可以在任何有ng的元素上使用指令'ng = strict-di' -app指令,並且這會導致應用程序在任何未註釋的模塊上引發錯誤 - 並且它將包含函數以及參數('function($ scope,service,something)'),這個參數希望是足夠獨特的快速找到。

+0

是的,做了開關! – FlavorScape