我们如何使用$ inject将依赖注入角度工厂?

时间:2016-07-13 07:04:52

标签: javascript angularjs dependency-injection inject

我试图定义一个常量并将其注入工厂。我的常量定义如下:

angular.module("ContactApp").constant("BaseApiURL", "http://localhost:31523/api/");

我的工厂定义为:

angular.module("ContactApp").factory('CustomerService', CustomerService);

//CustomerService.$inject = ['BaseApiURL']; Giving Error when this line is active.

function CustomerService(BaseApiURL, $resource) {

    return $resource(BaseApiURL + 'Customers');
};

上面的代码正在运行,但是我不需要将常量作为依赖项注入工厂方法吗?我可以使用$ inject将常量注入控制器,但不能将其注入工厂。

1 个答案:

答案 0 :(得分:1)

在angular的依赖注入中,如果不进行依赖注释(如设置。$ inject),angular将假定函数参数名称是依赖项的名称。

但不要依赖此功能,因为当您尝试缩小代码时会导致问题。

因此,最好的做法应该是在依赖注入的任何地方进行依赖注释。

顺便说一句,你可以在工厂设置$ inject,但也许你应该在你的情况下拨打CustomerService.$inject = ['BaseApiURL','$resource'];