簡體   English   中英

AngularJS - 未知提供者:undefinedProvider

[英]AngularJS - Unknown provider: undefinedProvider

我間歇性地收到此錯誤:

錯誤:[$injector:unpr] 未知提供者:undefinedProvider <- http://errors.angularjs.org/1.2.16/ $injector/unpr?p0=undefinedProvider%20%3C-%20

它最多可以重復 10 次。

這似乎是第一次將頁面加載到瀏覽器中時發生的。 通常,當我刷新頁面時,消息不會出現。

這不是一個新的應用程序。 它已經工作了一段時間,但我進行了更改。 症狀間歇性出現的事實使得很難隔離導致它的變化。

令我困惑的是undefinedProvider 歡迎任何有關如何查找提供商名稱的建議!

我使用的是 AngularJS 1.2.16 的未縮小版本。

我已經完成了通常的事情,比如使用數組語法。

我知道這沒什么可做的,但我想我會檢查是否有人在將代碼縮減為一個plunker之前經歷過類似的事情。

我最近添加的一件事是通過來自節點服務器的 ejs 變量傳遞一些配置數據(正如谷歌關於 ng-conf 的“大規模應用程序”的演講所推薦的那樣)。 它工作正常,但我想知道是否存在一些時間問題。 這是一個片段:

.config(['$provide', function ($provide) {
  var profile = angular.copy(window.activeProfile);
  $provide.constant('Config', profile.config);
  console.log("Config:", profile.config);
}])

.run(['$rootScope', '$state', '$window', 'Config', function ($rootScope, $state, $window, Config) {

配置按我的預期記錄。

這似乎是 ngAnimate 1.2.16 及更高版本中的錯誤(或與 AngularStrap 不兼容?)。 在我的應用程序的早期版本上工作,更高版本給我這個:

Error: [$injector:unpr] Unknown provider: undefinedProvider <- 
http://errors.angularjs.org/1.3.0-beta.5/$injector/unpr?p0=undefinedProvider%20%3C-%20
    at http://code.angularjs.org/1.3.0-beta.5/angular.js:78:12
    at http://code.angularjs.org/1.3.0-beta.5/angular.js:3709:19
    at Object.getService [as get] (http://code.angularjs.org/1.3.0-beta.5/angular.js:3836:39)
    at http://code.angularjs.org/1.3.0-beta.5/angular.js:3714:45
    at Object.getService [as get] (http://code.angularjs.org/1.3.0-beta.5/angular.js:3836:39)
    at lookup (http://code.angularjs.org/1.3.0-beta.5/angular-animate.js:409:36)
    at animationRunner (http://code.angularjs.org/1.3.0-beta.5/angular-animate.js:458:17)
    at performAnimation (http://code.angularjs.org/1.3.0-beta.5/angular-animate.js:862:22)
    at http://code.angularjs.org/1.3.0-beta.5/angular-animate.js:623:13
    at Scope.$digest (http://code.angularjs.org/1.3.0-beta.5/angular.js:12308:36)

我沒有直接使用 ngAnimate,而是通過 AngularStrap 和 Toaster 指令。

我的解決方案是恢復到 Angular 和 angular-animate 版本 1.2.15。

還有一堆麻煩射擊項目設在這里

你是否不止一次定義過你的模塊? 確保你沒有angular.module('name', []); 兩次以數組作為第二個參數。

有趣的是,調用$injector.get(key); 使用 undefined 作為你的鍵會給你同樣的錯誤,但調用堆棧會很容易地指向你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM