理解ng中的依赖和注入
来源:互联网 发布:苹果cms整合ckplayerx 编辑:程序博客网 时间:2024/05/28 16:17
Angularjs中的依赖注入
一:为什么要依赖注入?
”依赖注入” ——,从字面意思上来说分为两个部分:一是依赖,二是注入。也就是说,当一个对象在建立时候,需要依赖于另一个对象,这是代码层的一种依赖关系;当在代码中声明了依赖关系之后,Angular通过injector注入器将所依赖的对象进行”注入”操作.
二:Angular的三种注入方式?
推断型注入、声明式注入(标注式注入),内联注入,下面的例子中html只有一个<div>gameName</div>
- 内联注入(最常用)
myModule.controller('myCtrl',['$scope',function($scope1){ function($scope1){ $scope1.gameName = '棒棒'; } }])
- 推断型注入(也就是吧里面的函数拿出来)
注意:里面的参数(
var myCtrl = function($scope){ $scope.gameName = '棒棒'; } myModule.controller('myCtrl',myCtrl);
- 声明式注入(也就是可以换了参数的名称)
var myCtrl = function(myName){ myName.gameName = '棒棒'; } myCtrl.$inject = ['$scope']; //也就是改了一下函数的参数名称 myModule.controller('myCtrl',myCtrl);
三:Angular的创建自定义的注入方式(也就是创建能被注入的服务)?
- provider模式是策略模式和工厂模式的综合体
- 核心目的是为了让接口和现实分离
- 所有的provider都可以用来进行注入:provider/factory/service/constant/value
- 以下类型的函数可以接受注入:controller/directive/filter/service/factory
- Angular中的”依赖注入”是通过provider和injector这两个机制联合实现的
下面例子中html里面都是:<div>{{myName}}</div>
,下面创建服务的方法,从上到下,灵活度依次变差,因为无论是factory、service、constant还是value最终都是调用provider,(请看Angularjs源码第3922行左右的provider函数)只是他们封装了一下我们看不到而已。
provider方式?
var myModule = angular.module('myModule',[]); myModule.provider('HelloAngular',function(){ return { $get : function(){ var name = '棒棒'; function getName(){ return name; } return { getName : getName } } } }); myModule.controller('myCtrl',['$scope','HelloAngular', function($scope,HelloAngular){ $scope.myName = HelloAngular.getName(); } ])
factory方式?(最省事)
var myModule = angular.module("myModule", []); myModule.factory('game', function() { return { gameName: '棒棒' } }); myModule.controller('myCtrl',['$scope','game',function($scope,game){ $scope.myName = game.gameName }])
service方式?(里面只是一个构造函数)
var myModule = angular.module('myModule',[]); myModule.service('HelloAngular',function(){ this.name = '棒棒'; this.getName = function(){ return this.name; } }); myModule.controller('myCtrl',['$scope','HelloAngular',function($scope,HelloAngular){ $scope.myName = HelloAngular.getName(); }])
github源码:理解ng中的依赖和注入
阅读全文
1 0
- 理解ng中的依赖和注入
- 理解AngularJS中的依赖注入
- 理解JavaScript中的依赖注入
- 理解AngularJS中的依赖注入
- 理解angular中的module和injector,即依赖注入
- 理解angular中的module和injector,即依赖注入
- 理解angular中的module和injector,即依赖注入
- 如何理解AngularJS中的依赖注入
- AngularJs中模块的依赖注入,ng-model、ng-bind和{{}}的区别,路由机制。
- AngularJs中模块的依赖注入,ng-model、ng-bind和{{}}的区别,路由机制
- spring依赖注入和Aop的理解
- 如何理解依赖注入和控制反转
- 理解依赖注入和控制反转
- 全面理解控制反转和依赖注入
- 依赖注入和控制反转的理解
- 依赖注入和控制反转的理解
- 如何理解java中的依赖注入 通过构造函数和反射机制来实现的
- (七)理解angular中的module和injector,即依赖注入
- 十八、Object类的各个方法及其作用
- no module named lxml.html`
- MySQL带比较运算符的子查询
- String为不可变类
- 我学Linux之特殊字符:重定向
- 理解ng中的依赖和注入
- python学习之 利用蒙特卡洛方法计算PI值
- Python-OS平台编程
- 关于用户
- c++vector用法详解
- makefile的命名和写法简化
- AYIT2017暑假集训第二周周三赛 A
- 【Servlet】Servlet中的两种跳转方法
- 水仙花数的计算