缩小Angularjs应用程序

时间:2014-05-02 23:52:20

标签: angularjs

我最近在我的应用中添加了一项服务,导致它抛出错误。代码在没有缩小时运行良好。但是,当缩小时,它会抛出错误。这是缩写代码:

var service1 = function ($resource) {
    // code here
};
service1.$inject = ['$resource'];

var service2 = function (service1) {
    // code here
};
service2.$inject = ['service1'];

var service3 = function ($q, service2) {
    // code here
};
service3.$inject = ['$q', 'service2'];

这是我运行代码缩小时收到的错误:

Error: [$injector:unpr] Unknown provider: nProvider <- n <- service1 <- service2 <- service3

我在这里注入了所有必需的依赖项,因此这个错误非常令人困惑。我觉得service2是对service3的依赖,但也依赖于service1是问题的根源。这应该是合法的,对吗?

2 个答案:

答案 0 :(得分:2)

您错过了service1.inject service1.$inject中的美元符号。

答案 1 :(得分:2)

除了类型更好地使用这种语法(命名您的服务,工厂等),在缩小代码时可以更好地保护您。另请参阅有关缩小的official note

var module = angular.module('myModule', [])

module.factory('service1', ['$resource', function($resource) { ... }]);
module.factory('service2', ['service1', function(service1) { ... }]);
module.factory('service3', ['$q', 'service2', function($q, service2) { ... }]);