AngularJS开发指南14:依赖注入

时间:2022-02-09 17:09:16

推荐两种使用场景:

1、控制器中的依赖注入

控制器是负责应用行为的类。推荐的控制器声明方法如下:

var MyController = function(dep1, dep2) {
...
}
MyController.$inject = ['dep1', 'dep2']; MyController.prototype.aMethod = function() {
...
}

  

2、工场方法

工场方法负责创建AngularJS中的大部分对象。比如指令,服务,过滤器。工厂方法一般在模块中使用,推荐的方法如下:

angualar.module('myModule', []).
config(['depProvider', function(depProvider){
...
}]).
factory('serviceId', ['depService', function(depService) {
...
}]).
directive('directiveName', ['depService', function(depService) {
...
}]).
filter('filterName', ['depService', function(depService) {
...
}]).
run(['depService', function(depService) {
...
}]);

  

3、其它

依赖能在需要时被导入:

function SomeClass(greeter) {
this.greeter = greeter
} SomeClass.prototype.doSomething = function(name) {
this.greeter.greet(name);
}

AngularJS注入器使用示例:

AngularJS开发指南14:依赖注入

AngularJS开发指南14:依赖注入

行内标记

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

  若使用$inject会导致代码膨胀:

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

  

相关文章