依赖注入:一句话 --- 没事你不要来找我,有事我会去找你。

AngularJS    5个核心组件用来作为依赖注入:

  • value
  • factory
  • service
  • provider
  • constant

value:想来就是一个map定义了当前对象的变量,使用时将key放在function(key)参数列表中

constant:一个全局变量

mainApp.constant("configParam", "constant value");

service:像是一个普通函数,亦或者中间商,负责函数的调用

factory

  controller函数在调用时在参数位置添加先前定义的service函数,

  service函数也可以通过相同的方法调用factory函数内定义的方法。

  在java普通spring项目中,controller调用service,service调用业务代码,想来也差不多。

controller('CalcController', function($scope, CalcService, defaultInput) {
 1 <html>
2
3 <head>
4 <meta charset="utf-8">
5 <title>AngularJS 依赖注入</title>
6 </head>
7
8 <body>
9 <h2>AngularJS 简单应用</h2>
10
11 <div ng-app = "mainApp" ng-controller = "CalcController">
12 <p>输入一个数字: <input type = "number" ng-model = "number" /></p>
13 <button ng-click = "square()">X<sup>2</sup></button>
14 <p>结果: {{result}}</p>
15 </div>
16
17 <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
18
19 <script>
20 var mainApp = angular.module("mainApp", []);
21 mainApp.value("defaultInput", 5);
22
23 mainApp.factory('MathService', function() {
24 var factory = {};
25
26 factory.multiply = function(a, b) {
27 return a * b;
28 }
29 return factory;
30 });
31
32 mainApp.service('CalcService', function(MathService){
33 this.square = function(a) {
34 return MathService.multiply(a,a);
35 }
36 });
37
38 mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
39 $scope.number = defaultInput;
40 $scope.result = CalcService.square($scope.number);
41
42 $scope.square = function() {
43 $scope.result = CalcService.square($scope.number);
44 }
45 });
46
47 </script>
48
49 </body>
50 </html>

provider:感觉着与factory差不多,至少步骤差不多,按照刚才说的java的逻辑,也许只是业务代码的实现变了样子。

 1 //provider 实现 一小部分
2
3 var mainApp = angular.module("mainApp", []);
4
5 mainApp.config(function($provide) {
6 $provide.provider('MathService', function() {
7 this.$get = function() {
8 var factory = {};
9
10 factory.multiply = function(a, b) {
11 return a * b;
12 }
13 return factory;
14 };
15 });
16 });
17
18 //factory实现 一小部分
19
20 var mainApp = angular.module("mainApp", []);
21
22 mainApp.factory('MathService', function() {
23 var factory = {};
24
25 factory.multiply = function(a, b) {
26 return a * b;
27 }
28 return factory;
29 });
 1 //provider  完整代码
2
3 <html>
4
5 <head>
6 <meta charset="utf-8">
7 <title>AngularJS 依赖注入</title>
8 </head>
9
10 <body>
11 <h2>AngularJS 简单应用</h2>
12
13 <div ng-app = "mainApp" ng-controller = "CalcController">
14 <p>输入一个数字: <input type = "number" ng-model = "number" /></p>
15 <button ng-click = "square()">X<sup>2</sup></button>
16 <p>结果: {{result}}</p>
17 </div>
18
19 <script src="//cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
20
21 <script>
22 var mainApp = angular.module("mainApp", []);
23
24 mainApp.config(function($provide) {
25 $provide.provider('MathService', function() {
26 this.$get = function() {
27 var factory = {};
28
29 factory.multiply = function(a, b) {
30 return a * b;
31 }
32 return factory;
33 };
34 });
35 });
36
37 mainApp.value("defaultInput", 5);
38
39 mainApp.service('CalcService', function(MathService){
40 this.square = function(a) {
41 return MathService.multiply(a,a);
42 }
43 });
44
45 mainApp.controller('CalcController', function($scope, CalcService, defaultInput) {
46 $scope.number = defaultInput;
47 $scope.result = CalcService.square($scope.number);
48
49 $scope.square = function() {
50 $scope.result = CalcService.square($scope.number);
51 }
52 });
53
54 </script>
55
56 </body>
57 </html>

2020-11-13 15:46:10

angularJS依赖注入的个人理解的更多相关文章

  1. 关于angularjs依赖注入的整理

    初学angularjs阶段,刚刚看到菜鸟教程的angularjs依赖注入.现在整理一下: 1.含义:一个或更多的依赖(可以理解为模块关系依赖)或服务(分为内建服务[例如$http,$tiomeout等 ...

  2. AngularJS依赖注入

    <html> <head> <meta charset="utf-8"> <title>AngularJS 依赖注入</tit ...

  3. AngularJS 依赖注入

        依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该 ...

  4. 个人对于angularjs依赖注入的理解

    依赖注入(Dependency Injection,DI),作者认为本文中所有名词性的"依赖" 都可以理解为 "需要使用的资源". 对象或者函数只有以下3种获取 ...

  5. 记录对依赖注入的小小理解和autofac的简单封装

    首先,我不是一个开发者,只是业余学习者.其次我的文化水平很低,写这个主要是记录一下当前对于这块的理解,因为对于一个低水平 的业余学习者来说,忘记是很平常的事,因为接触.应用的少,现在理解,可能过段时间 ...

  6. AngularJS开发指南10:AngularJS依赖注入的详解

    依赖注入是一种软件设计模式,用来处理代码的依赖关系. 一般来说有三种方法让函数获得它需要的依赖: 它的依赖是能被创建的,一般用new操作符就行. 能够通过全局变量查找依赖. 依赖能在需要时被导入. 前 ...

  7. (五)Angularjs - 依赖注入

    如何找到API? AngularJS提供了一些功能的封装,但是当你试图通过全局对象angular去 访问这些功能时,却发现与以往遇到的库大不相同. 比如,AngularJS暴露了一个全局对象:angu ...

  8. AngularJS - 依赖注入(Dependency Injection)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ 依赖注入 依赖注入是软件设计模式中的一部分,用于处理组件是如何得到它说依赖的其它组件的. ...

  9. C# 一个初学者对 依赖注入 IOC 的理解( 含 Unity 的使用)

    通过 人打电话 来谈谈自己对IOC的理解 版本1.0 public class Person { public AndroidPhone Phone { get; set; } public void ...

  10. 控制反转(IOC) 和依赖注入(DI) 的理解

    1.      IOC(控制反转) inverseof control是spring容器的内核,AOP.声明事务等功能在此基础上开花结果. 2.      通过实例理解IOC概念: 实例:<墨攻 ...

随机推荐

  1. File、Files、Path、Paths

    一.Path.Paths 和 File.Files // Paths 工具类,用于获取 Path 实例 Path path = Paths.get("files/Data.txt" ...

  2. WindowsServer2012搭建FTP服务器站点

    公司需要搭建一个FTP服务器给银行推送账单,这个文章整理的比较详细,可以参考 数据来源: https://blog.csdn.net/u010483330/article/details/125931 ...

  3. Tomcat 性能监控与调优

    Tomcat 性能监控与调优 Tomcat 远程 Debug JDWP bin/startup.sh 修改最后一行(添加 jpda) exec "$PRGDIR"/"$E ...

  4. 手把手教你用Burpsuite+夜神模拟器抓安卓(Android 7)http+https包

    (1)进入正题,bp证书下载(下载证书至电脑):打开bp,配置好代理,浏览器访问http://127.0.0.1:8080 下载证书,记住保存路径,注意别修改证书后缀(der)!!! (2)准备一个L ...

  5. FFmpeg 命令行

    FFmpeg命令行帮助 #>ffmpeg -h #>ffmpeg -h long #>ffmpeg -h full 将视频按照指定的宽高输出 #>ffmpeg -i input ...

  6. js 处理日期加减

    js 处理日期加减 开始时间设置为6点整,若当前时间小于6:00:00,则使用T-1,否则使用T 结束时间设置为T+1的6点整 Date.prototype.format = function(fmt ...

  7. FPGAUSB控制器编程

    FPGA产生PLL LED子module,显示FPGA在运行 USB控制子module,USB时钟输入,状态输入,总线输出,USBFIFO地址总线,数据双向总线. USB状态机,Flaga有效时,转为 ...

  8. Surface Pro (1796),安装Win11之后出现的问题。

    2020年年中我为了体验微软新的操作系统,加入了Review计划,即:Windows预览体验计划.然后升级到了Win11.由于苏菲一直是作为辅助设备用,所以平时就是开节电模式,中途也升级了几次Win1 ...

  9. jmeter支持发送https请求

    示例网址: https://passport.damai.cn/login 一.Jmeter如何导入SSL证书 步骤1.打开Chrome浏览器访问地址,点击安全锁,导出证书,并复制文件至指定文件目录. ...

  10. window安装、启动consul

    1.官网下载:https://www.consul.io/downloads.html 2.下载解压后的安装包只有一个consul.exe文件,双击可查看版本信息 3.设置环境变量,在Path下新增一 ...