除了一些文件之外,我在各处使用了注释(在控制器,服务......中)。当我遇到缩小问题时,我正在重写最后几个文件。
这是我目前的配置:
(function () {
angular.module('app')
.config(function ($stateProvider, $urlRouterProvider, $provide, $httpProvider, showErrorsConfigProvider, LightboxProvider) {
$httpProvider.interceptors.push('requestsErrorHandler');
$urlRouterProvider.otherwise('/');
showErrorsConfigProvider.showSuccess(true);
// more code
// routing and stuff...
});
}());
这很好用。我现在正试图用注释重写这个:
(function () {
angular.module('app')
.config('configurationapp', configurationapp);
configurationapp.$inject = ['$stateProvider', '$urlRouterProvider', '$provide', '$httpProvider', 'showErrorsConfigProvider', 'LightboxProvider'];
function configurationapp($stateProvider, $urlRouterProvider, $provide, $httpProvider, showErrorsConfigProvider, LightboxProvider) {
$httpProvider.interceptors.push('requestsErrorHandler');
$urlRouterProvider.otherwise('/');
showErrorsConfigProvider.showSuccess(true);
// more code
// routing and stuff
}
}());
但是,我收到了这个错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [ng:areq] Argument 'fn' is not a function, got string
我不明白为什么我收到这个错误。我已经完成完全与所有其他文件相同,但这仍然不起作用。
我做错了什么?
答案 0 :(得分:6)
向config
提供了一个字符串:
angular.module('app')
.config('configurationapp', configurationapp);
它需要一个参数,函数或数组。 configurationapp
不是Angular服务,不应命名为:
angular.module('app')
.config(configurationapp);
答案 1 :(得分:1)
试试这个语法。我发现内联注释比显式注入依赖项更容易:
(function () {
angular.module('app')
.config(['$stateProvider', '$urlRouterProvider', '$provide', '$httpProvider', 'showErrorsConfigProvider', 'LightboxProvider',
function ($stateProvider, $urlRouterProvider, $provide, $httpProvider, showErrorsConfigProvider, LightboxProvider) {
$httpProvider.interceptors.push('requestsErrorHandler');
$urlRouterProvider.otherwise('/');
showErrorsConfigProvider.showSuccess(true);
// more code
// routing and stuff...
}]);
}());