只需阅读有关 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/