javascript - Angular.js-providerInjector 错误

标签 javascript angularjs

我在 Angular 提供程序方面遇到问题,收到此错误:

Row 2696: Error: Unknown provider: a

使用未缩小的 Angular v 1.06,第 2696 行:

providerInjector = createInternalInjector(providerCache, function() {
    throw Error("Unknown provider: " + path.join(' <- '));
}),

这是代码:

var myApp = angular.module('myApp', [], function ($interpolateProvider) {
    $interpolateProvider.startSymbol('{[{');
    $interpolateProvider.endSymbol('}]}');
});

myApp.directive('buttonsRadio', function() {      
[...]
});


myApp.controller('MainController', function MainController ($scope) {
[...]
})

有什么想法吗?

编辑:添加错误消息:

Error: Unknown provider: aProvider <- a
createInjector/providerInjector<@/libs/angular.js:2696
getService@/libs/angular.js:2824
createInjector/instanceCache.$injector<@/libs/angular.js:2701
getService@/libs/angular.js:2824
invoke@/libs/angular.js:2842
instantiate@/libs/angular.js:2874
@/libs/angular.js:4759
applyDirectivesToNode/nodeLinkFn/<@/libs/angular.js:4338
forEach@/libs/angular.js:138
nodeLinkFn@/libs/angular.js:4323
compositeLinkFn@/libs/angular.js:3969
compositeLinkFn@/libs/angular.js:3972
nodeLinkFn@/libs/angular.js:4354
compositeLinkFn@/libs/angular.js:3969
publicLinkFn@/libs/angular.js:3874
bootstrap/resumeBootstrapInternal/</<@/libs/angular.js:963
Scope.prototype.$eval@/libs/angular.js:8011
Scope.prototype.$apply@/libs/angular.js:8091
bootstrap/resumeBootstrapInternal/<@/libs/angular.js:961
invoke@/libs/angular.js:2857
bootstrap/resumeBootstrapInternal@/libs/angular.js:960
bootstrap@/libs/angular.js:973
angularInit@/libs/angular.js:934
@/libs/angular.js:14756
f.Callbacks/n@http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js:2
f.Callbacks/o.fireWith@http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js:2
.ready@http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js:2
B@http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js:2

/libs/angular.js
Line 5704

最佳答案

在运行 uglify 或任何其他 ofuscator/压缩算法之前,您应该运行 grunt 任务 ng-annotate ,它将依赖项添加为字符串作为可注入(inject)数组,这使您的代码更加清晰,因为可注入(inject)注释可以作为构建步骤自动添加,而不必手动编码。

myApp.controller('MainController', function MainController ($scope) {
[...]
})

变成:

myApp.controller('MainController', ['$scope', function MainController ($scope) {
[...]
}])

看看:https://github.com/olov/ng-annotate

更新: ng-min AngularJS Pre-minifier 已弃用 –> 使用 ng-annotate

关于javascript - Angular.js-providerInjector 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16242406/

相关文章:

javascript - 主页 slider 在移动设备上显示不佳

javascript - jquery - 翻译国家名称并对其进行排序

javascript - Google Maps API v3 TypeScript 定义文件 bool 而不是 Boolean

javascript - 解析服务器 user.getSessionToken() 未定义

javascript - 创建范围 slider ,无 jQuery

javascript - 使用滚动顶部从 Controller 调用指令

javascript - 如何有条件地应用 Angular 状态提供者

javascript - 将文件流下载为 angularjs 中的文件

javascript - 根据驻留在 Json 数组中的对象的 Json 值获取 Json 键

angularjs - 如何在 AngularJS 中使用与 ngClass 指令的一种方式绑定(bind)?