您的位置:首页 > Web前端 > AngularJS

AngularJS学习笔记九 依赖注入

2018-02-15 11:32 344 查看
1.AngularJS中的依赖注入
    控制反转是一种软件设计思想,而依赖注入就是实现控制反转最直接也是最简单的方式,控制反转就不一定需要通过依赖注入来实现;

    所谓的依赖注入,就是当你在一个组件中需要依赖其他组件的时候,不需要自己创建这些组件,而是通过依赖注入的方式直接获得这些组件;

    获取依赖可以通过三种方式完成:创建依赖、全局查找依赖和依赖注入;

    术语解释:IoC:Inversion of Control 控制反转

                    DI:Dependency Injection 依赖注入

2.AngularJS提供了三种依赖注入方式
方式一:通过数组标注在方法的参数中声明依赖
    app.controller("controllerName",[‘$scope’,function($scope){}]);

    注意:构造函数的参数列表与前面的数组元素是一一对应的;
方式二:使用控制器构造方法的$inject属性注入依赖:var func=function($scope){};
func.$inject=['$scope'];
app.controller("controllername",func);
    注意:$inject中依赖的顺序与构造方法中的参数顺序需要保持一致;
方式三:隐式声明依赖:

    app.controller("controllername",function($scope){});

    注意:严格依赖注入模式下隐式声明依赖会抛出异常,ng-strict-di.
3.AngularJS提供了一个内置的$provider服务,可以使用它创建几种可注入类型。可以在调用config()方法时使用$provider服务。提供了provide() constant() value() service() factory()等方法;
4.$inject服务实际上就是一个IoC容器,使用方法$inject.get("serviceName")。可以获取可注入对象,可以使用angular.injector()方法获取$injector服务。参数接收一个模块数组,指定从哪些模块中查找该服务。$injector的annotate()方法可以知道某个方法依赖于哪些服务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: