好吧,在我开始解决这个臭名昭著的问题之后,现在我正式秃头了:缩小的AngularJS应用程序无法正常工作,并抛出了以下错误:
错误:[$ injector:unpr]未知提供程序:aProvider <-a
http://errors.angularjs.org/1.2.6/ $
injector / unpr?p0 = aProvider%20%3C-%20a位于http:// localhost /my-
app/dist/scripts/1bde0e2e.vendor.js:4:11492, 位于http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:4:26946, 位于Object.c [获得]
(http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:4:26250)位于http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:4:27041 位于c(http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:4:26250)at Object.d [作为调用](http://
localhost / my-app / dist / scripts / 1bde0e2e
.vendor.js:4:26496)http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:9:910 at Object.f [as
forEach](http://localhost/my-app/dist/scripts/1bde0e2e.vendor。
js:4:11927),位于http://localhost/my-
app/dist/scripts/1bde0e2e.vendor.js:9:856, 位于j(http://localhost/my-
app/dist/scripts/1bde0e2e.vendor .js:5:27235)
许多其他人也有这个问题,但是看起来可以通过将依赖项声明为数组而不是裸函数参数来解决,如下所示:
angular.module('my-app').controller('LoginCtrl', [ '$scope', 'HttpService', function($scope, HttpService) { ... }]);
代替这个:
angular.module('my-app').controller('LoginCtrl', function($scope, HttpService) { ... });
但这对我来说不起作用。我检查了所有脚本(咖啡和生成的javascript),它们都使用正确的数组样式声明。
这个问题显然不是来自额外的软件包。我尝试将所有额外的程序包引用移出<!-- bower:js -->
块(这样它们就不会被grunt缩小),但是问题仍然存在。这意味着,这应该归咎于我的代码…但是,再次,我尝试了(似乎是)仅可用的修复程序,但无济于事。
有任何提示,即使如何正确调试也是如此?
提前致谢!
终于我找到了问题所在。是的,这是我错过的DI错误。
对于所有可能同样感到头痛的人:数组格式声明也必须在$routeProvider
的resolve
选项中完成。就我而言(前面的CoffeeScript):
app.config (['$routeProvider', ($routeProvider) ->
$routeProvider
.when '/',
templateUrl: 'views/main.html'
controller: 'MainCtrl'
resolve:
groups: ['GroupService', (GroupService) -> # I MISSED THIS
return GroupService.getAll()
]
entries: ['EntryService', (EntryService) -> # AND THIS
return EntryService.getAll()
]
# ...
])
希望这可以帮助!
问题内容: 我试图通过遵循工厂方法文档中的示例来构建自己的服务。我认为我做错了,因为我继续遇到未知的提供程序错误。这是我的应用程序代码,包括声明,配置和工厂定义。 编辑我现在添加了所有文件以帮助解决问题 编辑该错误的完整详细信息在下面,问题似乎与getSettings有关,因为它正在寻找getSettingsProvider,但找不到它 这些是我目前在我的应用程序中拥有的所有文件 app.js 这
问题内容: 我正在尝试在html页面中显示配置的值和角值服务中的版本代码,但显示的不是作者的名字,这是html代码 这是指令… 这是在其中配置和值的服务部分 我在开发人员控制台中遇到的错误是 问题答案: 确保将这些模块( myApp.services 和 myApp.directives )作为主要应用程序模块的依赖项加载,如下所示: 塞子: http ://plnkr.co/edit/wxuFx
问题内容: 我正在尝试启动并运行AngularJS 1.2 RC2应用程序。目前,我一直在使用Angular Seed项目来尝试使我的应用程序启动并运行。不幸的是,Angular Seed项目使用的是v1.0.7。在Angular Seed项目中,我将依赖项更新为以下内容: 在app.js中,我具有以下内容: 当我运行此应用程序时,出现以下错误: 我已经阅读了其他一些回答,例如1)注入’ngrou
问题内容: 我试图在angularjs应用程序中使用路由,如下所示: app.js controller.js index.html productList.html 当我运行此代码时,我在(谷歌浏览器的)控制台中收到以下错误: 我开始知道发生此错误,因为我在productsCtrl中使用。但是那我该怎么办?我该如何解决这个问题? 问题答案: $ element是不可注入的(它不是在Angular
问题内容: 我将其他html文件作为模板包含在index.html中。为此,我正在使用ng-view指令。但是我遇到一个错误: 我使用的代码是: 这是控制器: 配置: 这是HTML: 我在哪里想念? 问题答案: 做完了 在大多数情况下,这将是angular-route的冲突,而angularjs存在冲突。之后,由于持续不断的循环请求,导致页面崩溃 每次看到“ /”,它都会重新重定向到同一页面,从而
问题内容: 在以下代码示例中: 我收到类似“未知提供者$ cookieStore”的angularjs错误。 “ myApp”具有Dependenciy和“ ngCookies”,并且对angular-cookies.min.js进行了评分,那么该代码有什么问题? 那是我在.config中执行此操作的事实吗? 问题答案: 因为只能在配置时传递提供程序,所以我最终没有通过请求转换器而是通过将服务创建