此代码为菜鸟教程上angular依赖注入部分的讲解,但是菜鸟教程没用写完整,并不能直接运行,所以我在这里做一些补充,直接上源码!!!
尊重版权!!(http://www.runoob.com/angularjs/angularjs-dependency-injection.html)
AngularJS 依赖注入
什么是依赖注入
wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。
该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular-animate.min.js"></script>
</head>
<body>
<div ng-app="mainApp" ng-controller="CalcController">
<!--<div ng-include="'header.html'"></div>-->
<div>{{number}}</div>
</div>
</body>
<script>
var mainApp = angular.module("mainApp", []);
// 创建 factory "MathService" 用于两数的乘积
mainApp.factory('MathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b
}
//作为返回值返回
return factory;
});
// 在 service 中注入 factory "MathService"-----此处是用service自定义了一个CalcService服务
mainApp.service('CalcService', function(MathService){
this.square = function() {
return MathService.multiply(3,5);
}
});
mainApp.controller("CalcController",['$scope','CalcService',function($scope,CalcService){
//通过下面方式调用(这种方法可以实现两个控制器之间传递数据)
$scope.number = CalcService.square();
}]);
</script>
</html>