javascript - AngularJS的依赖注入(inject)中 ".config([...])"中的方括号是什么意思

标签 javascript angularjs dependency-injection

只需阅读有关 dependency injection 的 AngularJS 文档和开发指南的依赖注入(inject).语法与我之前阅读的非常不同。

我对工厂方法模块方法 感到困惑,它们是依赖注入(inject)文档的开头部分。

显示了我从文档中阅读的示例:

angular.module('myModule', [])
.config(['depProvider', function(depProvider) {
  // ...
}])
.run(['depService', function(depService) {
  // ...
}])

由于没有详细的实现,我很难理解语法,尤其是我之前看过的.config的例子在声明时没有方括号。

想知道.factory.directive.config中方括号的含义以及整个语法的含义.这与 example 完全不同我以前读过(下面显示为 .config 的示例)

//define a module
var mainApp = angular.module("mainApp", []);
...
//create a service using provider 
//which defines a method square to return square of a number.
mainApp.config(function($provide) {
   $provide.provider('MathService', function() {
      this.$get = function() {
         var factory = {};  
         factory.multiply = function(a, b) {
            return a * b; 
         }
         return factory;
      };
   });
});

是不是因为两个例子来自不同版本的AngularJS?

最佳答案

如果你正在缩小你的 js 文件,使用数组是最好的方法。例如这里有两个示例。

mainApp.config(function($provide){});

缩小后会变成

mainApp.config(function(a){});

因为没有任何名为 a 的 Angular 依赖项,Angular 会在这里抛出错误。

这个问题的解决方案是alias。使用数组表示法,以字符串格式定义依赖项,并使用具有任何名称的依赖项作为方法中的变量。

当你使用这个

mainApp.config(['$provide', function($provide){}]);

缩小后会变成

mainApp.config(['$provide', function(a){}]);

由于字符串在压缩过程中无法压缩,依赖名称保持不变。在缩小 js 文件后,您的应用程序也可以正常工作。

关于javascript - AngularJS的依赖注入(inject)中 ".config([...])"中的方括号是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31966673/

相关文章:

javascript - 如何使用 javascript 来验证表单?

javascript - Angular 花括号不起作用,基本代码

AngularJS ui-router 无法加载 templateUrl

javascript - 输入类型数字返回 null

spring - WebSphere 7 中的 Spring 依赖注入(inject)(JSR 330 注释)不起作用

swift - 台风:从 Storyboard OS X 注入(inject) Controller

javascript - HTML5 视频样式 CSS?

javascript - 清除所有数据并恢复默认设置

JavaScript : switch and check radio button

grails - 如何在 Grails 域类中使用接口(interface)类型对象