写在前面
Angular注入器会负责创建angular组件,解决组件之间的依赖以及依赖注入等职责,config 可以向 angular 组件(控制器、服务、过滤器、指令、动画等)中注入服务(service)或者值(value)类型的依赖。run方法中定义依赖,可被注入的依赖包括服务(service)、值(value)和参量(constant)。
Module
模块是 services, directives, controllers, filters, and configuration 的集合。angular.module 用来配 $injector 的。
下面 api 用来注册服务,
module.value();module.service();module.constant();
下面 api 用来注入服务,
module.config();module.run();
创建好模块之后,使用angular.injector(['ng', 'myModule']) 来创建注入器来启动你的模块,也可以使用 ngApp 或者 angular.bootstrap。
ngInject
ng-annotate 将 ngInject 当成一个标志,如果一个函数以 ngInject 开头,那么 ng-annotate 将下面代码
angular.module("MyMod").controller("MyCtrl", function($scope, $timeout) {"ngInject";...});
转化为:
angular.module("MyMod").controller("MyCtrl", ["$scope", "$timeout", function($scope, $timeout) {"ngInject";...}]);
