微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AngularJS 依赖注入详解及示例代码

依赖注入是一个在组件中给出的替代了硬的组件内的编码它们的依赖关系的软件设计模式。这减轻一个组成部分,从定位的依赖,依赖配置。这有助于使组件可重用,维护和测试。

AngularJS提供了一个至高无上的依赖注入机制。它提供了一个可注入彼此依赖下列核心组件。

值是简单的JavaScript对象,它是用来将值传递过程中的配置相位控制器。

rush:js;"> //define a module var mainApp = angular.module("mainApp",[]); //create a value object as "defaultInput" and pass it a data. mainApp.value("defaultInput",5); ... //inject the value in the controller using its name "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);
}
});

工厂

工厂是用于返回函数的值。它根据需求创造值,每当一个服务或控制器需要。它通常使用一个工厂函数来计算并返回对应值

rush:js;"> //define a module var mainApp = angular.module("mainApp",[]); //create a factory "MathService" which provides a method multiply to return multiplication of two numbers mainApp.factory('MathService',function() { var factory = {}; factory.multiply = function(a,b) { return a * b } return factory; });

//inject the factory "MathService" in a service to utilize the multiply method of factory.
mainApp.service('CalcService',function(MathService){
this.square = function(a) {
return MathService.multiply(a,a);
}
});
...

服务

服务是一个单一的JavaScript包含了一组函数对象来执行某些任务。服务使用service()函数,然后注入到控制器的定义。

rush:js;"> //define a module var mainApp = angular.module("mainApp",[]); ... //create a service which defines a method square to return square of a number. mainApp.service('CalcService',a); } }); //inject the service "CalcService" into the controller mainApp.controller('CalcController',defaultInput) { $scope.number = defaultInput; $scope.result = CalcService.square($scope.number);

$scope.square = function() {
$scope.result = CalcService.square($scope.number);
}
});

提供者

提供者所使用的AngularJS内部创建过程中配置阶段的服务,工厂等(相AngularJS引导自身期间)。下面提到的脚本,可以用来创建,我们已经在前面创建MathService。提供者是一个特殊的工厂方法以及get()方法,用来返回值/服务/工厂。

rush:js;"> //define a module var mainApp = angular.module("mainApp",[]); ... //create a service using provider which defines a method square to return square of a number. mainApp.config(function($provide) { $provide.provider('MathService',function() { this.$get = function() { var factory = {}; factory.multiply = function(a,b) { return a * b; } return factory; }; }); });

常量

常量用于通过配置相位值考虑事实,值不能使用期间的配置阶段被传递。

figParam","constant value");

例子

下面的例子将展示上述所有指令。

testAngularJS.html

rush:js;"> AngularJS Dependency Injection

AngularJS Sample Application

Enter a number:

Result: {{result}}

结果

在Web浏览器打开textAngularJS.html。看到结果如下。

以上就是对AngularJS 依赖注入的资料整理,后续继续补充相关资料,谢谢大家对本站的支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐