我正在尝试定义一个常量并将其注入(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)到工厂方法中吗?我可以使用 $inject 将常量注入(inject)到 Controller 中,但无法在工厂中这样做。
最佳答案
在 Angular 的依赖注入(inject)中,如果不做依赖注解(比如设置 .$inject),Angular 会假设函数参数名称就是依赖的名称。
但不要依赖此功能,因为当您尝试缩小代码时它会导致问题。
因此,最佳实践应该是在存在依赖注入(inject)的地方进行依赖注释。
顺便说一句,您可以在工厂中设置 $inject,但也许您应该在您的情况下调用 CustomerService.$inject = ['BaseApiURL','$resource'];
。
关于javascript - 我们如何使用 $inject 将依赖项注入(inject)到 Angular 工厂中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344770/