gpt4 book ai didi

javascript - AngularJS Dependency Injection 在哪里指定?

转载 作者:行者123 更新时间:2023-11-30 12:55:23 24 4
gpt4 key购买 nike

我是一个 angularJS 菜鸟,根据我的理解,我可以在两个地方注入(inject)依赖。

angular.module('myApp', [A: HERE IS ONE PLACE TO DO IT])
.controller('HomeController', function(B: $hereIsAnotherPlace){

});

我说得对吗?如果是,有什么区别?

最佳答案

在您的示例中,A 是您可以指定模块而不是依赖注入(inject) (DI) 的地方。下面,解决您的代码的这种变化:

 .controller('HomeController', [A , function(B) {}]);

第二个 (B) 是必需的,第一个 (A) 是可选的(但具有如下所述的好处)。

这是一个仅使用 Angular 文档中的第二个 (B) 的示例:

    function MyController($scope, greeter) {...}'

但是 Javascript 压缩器和混淆器可以重命名参数并打破这种方法,因为 Angular 期望,例如,$scope 被精确命名为 $scope(并且压缩器喜欢将参数重命名为尽可能小的东西,以便将文件缩小为尽可能小)。

其中一种方法是内联注释:

someModule.factory('greeter', ['$window', function(renamed$window) {...}]); 

(再次来自 Angular 文档)。这解决了这个问题,因为 minifers/.. 不会更改字符串文字。 Angular 知道将具有该字符串名称的服务注入(inject)到函数内的匹配参数中。因此参数名称可以通过缩小器更改为任何内容,一切都很好,唯一重要的是服务在字符串/参数列表中的位置(第一个字符串与第一个参数匹配,等等)。

有关依赖注入(inject)的更多信息:http://docs.angularjs.org/guide/di

关于javascript - AngularJS Dependency Injection 在哪里指定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351097/

24 4 0
文章推荐: javascript - 单页应用程序概念可以用于创建独立的桌面应用程序吗?
文章推荐: swift - 使用 addChild 进行不需要的重复
文章推荐: javascript - jquery- 在