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()方法可以知道某个方法依赖于哪些服务。
控制反转是一种软件设计思想,而依赖注入就是实现控制反转最直接也是最简单的方式,控制反转就不一定需要通过依赖注入来实现;
所谓的依赖注入,就是当你在一个组件中需要依赖其他组件的时候,不需要自己创建这些组件,而是通过依赖注入的方式直接获得这些组件;
获取依赖可以通过三种方式完成:创建依赖、全局查找依赖和依赖注入;
术语解释: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()方法可以知道某个方法依赖于哪些服务。
相关文章推荐
- angularjs学习笔记-处理依赖注入
- AngularJS学习笔记之依赖注入详解
- AngularJS学习笔记之依赖注入
- 微软企业库4.1学习笔记(二十四)Unity依赖注入模块 简介
- Asp.net core 学习笔记 ( DI 依赖注入 )
- Spring 4 学习笔记6:依赖注入(配置)
- Spring 学习笔记 ----依赖注入
- spring学习笔记(1)-spring依赖注入的几种方式
- Spring 4 学习笔记3:依赖注入(DI)
- AngularJs学习二--路由、模块、依赖注入
- 微软企业库4.1学习笔记(二十五)Unity依赖注入模块2
- spring学习笔记 -- day03 IOC中的bean标签、DI依赖注入
- 【ASP.NET MVC 学习笔记】- 05 依赖注入工具Ninject
- Spring 学习笔记 ----依赖注入
- 微软企业库4.1学习笔记(二十五)Unity依赖注入模块2
- Asp.net core 学习笔记--(1)依赖注入
- 微软企业库5.0学习笔记(10)ASP.NET模块依赖注入
- Castle学习笔记----将Castle IOC引入项目开发中实现“依赖注入”
- 微软企业库4.1学习笔记(二十六)Unity依赖注入模块3
- ASP.NET Core 2 学习笔记(四)依赖注入