javascript - 我们如何使用 $inject 将依赖项注入(inject)到 Angular 工厂中?

标签 javascript angularjs dependency-injection inject

我正在尝试定义一个常量并将其注入(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/

相关文章:

symfony - $这个对象在 Symfony2 的服务中使用时无法正常工作

javascript - 框架7 : Navbar hidden when I'm move to anothers views

javascript - 在特定 id/class 上使用 pinterest 保存按钮?

javascript - 在启动 Firebug 控制台之前自动执行 JavaScript 行

angularjs - http.post 在 angular 1.2.1 中没有始终回调 always()

angularjs - 表单验证 AngularJS 欺骗时出现 Ng 重复错误

javascript - AngularJS - 覆盖管理布局?

java - 使用构造函数注入(inject)时如何避免循环依赖

javascript - 如何使用 Jquery 读取带有数组的选定选项?

dependency-injection - 如何使用 Func(servicestack fork)注册通用接口(interface)