AngularJs 基础教程 ―― 依赖注入

本文为H5EDU机构官方HTML5培训教程,主要介绍:AngularJs 基础教程―― 依赖注入

AngularJS依赖注入
什么是依赖注入
wiki上的解释是:依赖注入(DependencyInjection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。
该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖
一句话---没事你不要来找我,有事我会去找你。
AngularJS提供很好的依赖注入机制。以下5个核心组件用来作为依赖注入:
value
factory
service
provider
constant
value
Value是一个简单的javascript对象,用于向控制器传递值(配置阶段):
//定义一个模块
varmainApp=angular.module("mainApp",);

//创建value对象"defaultInput"并传递数据
mainApp.value("defaultInput",5);
...

//将"defaultInput"注入到控制器
mainApp.controller('CalcController',function($scope,CalcService,defaultInput){
$scope.number=defaultInput;
$scope.result=CalcService.square($scope.number);

$scope.square=function(){
$scope.result=CalcService.square($scope.number);
}
});
factory
factory是一个函数用于返回值。在service和controller需要时创建。
通常我们使用factory函数来计算或返回值。
//定义一个模块
varmainApp=angular.module("mainApp",);

//创建factory"MathService"用于两数的乘积providesamethodmultiplytoreturnmultiplicationoftwonumbers
mainApp.factory('MathService',function(){
varfactory={};

factory.multiply=function(a,b){
returna*b
}
returnfactory;
});

//在service中注入factory"MathService"
mainApp.service('CalcService',function(MathService){
this.square=function(a){
returnMathService.multiply(a,a);
}
});
...
provider
AngularJS中通过provider创建一个service、factory等(配置阶段)。
Provider中提供了一个factory方法get(),它用于返回value/service/factory。
//定义一个模块
varmainApp=angular.module("mainApp",);
...

//使用provider创建service定义一个方法用于计算两数乘积
mainApp.config(function($provide){
$provide.provider('MathService',function(){
this.$get=function(){
varfactory={};

factory.multiply=function(a,b){
returna*b;
}
returnfactory;
};
});
});

点击进入JS强化教程

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...