AngularJs(Part 3)--注册服务
有以下5中方法注册一个AngularJS可以识别的Service
value和constant是两个极其简单的方法,只有少数情况下会使用。 service已经开始复杂了起来。而factory是我认为既简单又有足够灵活的度的方法。最后的provide是最复杂的方法,其他方法都是provide的特殊情况下的简化。
另外AngularJS中注册的Service都是单例的。
1.Constant
这是最简单的方法,只是注册了一个常量。在以后的程序中,主要注入了‘MAX_LEN’, 那么就可以使用
module.constant('MAX_LEN',10);module.service('service1',['MAX_LEN',function(MAX_LEN){ console.log(MAX_LEN) //控制台会打印出 10.}]);
2.Values
这个也比较简单,单纯注册一个类,这个类没有其他依赖
module.value('myservice',new MyService());
3.Service
module.service('myjob',['myservice',function(){myservice.work(); }]);
4.Factories
这是比较灵活又不失简单的方法。 注册一个工厂方法给AngularJS。使用myjob时,AngularJS会调用这个工厂方法来生成我们需要的对象:就是最后return的对象(他可以是任意合法的javascript对象)。
下面的例子中返回的是一个带3个方法的对象。使用是直接用 myjob.push() , myjob.put(), myjob.get()...调用。
module.factory('myjob',['myservice',function(myservice){ ...return {push:function(){},put:function(){},get:function(){},.....}; }]);
5.Providers.
上面所有方法其实都是provide的一个特例。provide仍然是注册一个工厂方法。这个工厂方法必须返回一个带有$get方法的对象。而$get方法其实也是一个工厂方法。它返回的就是我们需要的对象。下面的例子中myjob其实带有三个方法push,put,get, 我们可以在以后随意使用。但是可以看到还有一个 setMinLen方法,它与$get方法同级。如何调用就牵涉到module的生命周期了。
module.provide('myjob',function(){var config={minLen:10};return {setMinLen:function(minLen){config.minLen=minLen||config.minLen;},$get:function(myservice,MAX_LEN){return {push:function(){},put:function(){if(10<config.minLen)...},get:function(){},};}};});
Modules 生命周期
AngularJS中module要起作用必须经过两个阶段
1. The configuration phase: 这个阶段收集所以经过provide注册的服务,并进行前期的配置。上面的setMinLen就可以在这个阶段调用。
2. The run phase: It is the phase where we can execute any post-instantiaation logic.这个阶段才有$scope的概念。
The configuration phase: 这是依赖的不是服务,而是服务的provider,所以方法参数都是服务名加Provider的后缀
module.config(function(myjobProvider){myjobProvider.setMinLen(20);});
The run phase:
module.run(function($rootScope){$rootScope.appStarted=new Date();});
转载于:https://www.cnblogs.com/formyjava/p/4166314.html
AngularJs(Part 3)--注册服务相关推荐
- 为 Kerberos 连接注册服务主体名称
为 Kerberos 连接注册服务主体名称 SQL Server 2012 引自:http://technet.microsoft.com/zh-cn/library/ms191153.aspx 若要 ...
- 注册服务(addService)
一.概述 1.1 media服务注册 media入口函数是main_mediaserver.cpp中的main()方法,代码如下: 过程说明: 获取ServiceManager: 讲解了default ...
- Consul入门03 - 注册服务
在前面的步骤,我们运行了第一个代理,看到了集群的成员,并且查询了节点信息.在这篇指南里,我们将注册我们第一个服务并且查询这个服务. 定义一个服务 一个服务能够通过提供一个服务定义或者调用适当的HTTP ...
- linux 查询注册服务,window下注册服务的命令小结
1. 描述: SC 是用于与服务控制管理器通信的命令行程序 . 用法: sc [command] [service name] ... 选项 的格式为 可以键入 "sc [comma ...
- Dubbo使用Zooker注册服务
一.安装配置Zooker 1.下载Zooker 在apache mirros上下载Zooker :https://mirror.bit.edu.cn/apache/zookeeper/,下载后解压到指 ...
- .net core grpc consul 实现服务注册 服务发现 负载均衡(二)
在上一篇 .net core grpc 实现通信(一) 中,我们实现的grpc通信在.net core中的可行性,但要在微服务中真正使用,还缺少 服务注册,服务发现及负载均衡等,本篇我们将在 .net ...
- Windows安装Apache注册服务出现(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager,
windows安装Apache,注册服务出现"(OS 5)拒绝访问. : AH00369: Failed to open the WinNT service manager..." ...
- Cloudflare推出域名注册服务:不赚利润只收取成本费
9月27日,Cloudflare官方博客宣布推出域名注册服务,承诺只收取成本费,不赚取利润. Cloudflare在2010年9月成立,在那之前就有Cloudflare的早期测试版客户问:" ...
- datasnap——动态注册服务类
datasnap--动态注册服务类 在DataSnap的应用程序时,我们首先需要注册的服务器类,以提供访问客户端应用程序的服务器方法.通常的做法是使用DSServerClass组件,但有些时候,我们要 ...
- Spring Boot快速注册服务脚本
前言 Spring Boot项目通过JAR打包部署的时候,一般我们所采取的措施是将其注册为服务,并通过service命令管理项目.但注册服务的过程相对繁琐,不如写一个脚本来快速注册(入门Shell). ...
最新文章
- 从Google的PaaS平台说起,解析中美Docker生态圈
- PAT甲级1010 Radix :[C++题解]进制位、秦九韶算法、二分(PAT通过率最低的一道题0.11)
- kl距离 java_信息量、熵、最大熵、联合熵、条件熵、相对熵、互信息。
- Python笔记(十五)_异常处理
- leetcode-49-字母异位词分组(神奇的哈希)
- ecshop备份数据 ecshop转移数据 ecshop更换主机
- 为什么考研的都不是班里最优秀的?
- 建筑与计算机技术,计算机技术与建筑设计的不完全认识
- swift4.0闭包
- 【预测模型】基于matlab GUI BP神经网络+最小二乘法预测模型【含Matlab源码 208期】
- ps 批处理图片大小和压缩
- iOS 单例模式详解/避免滥用单例
- 爽一把手写Bundle Adjustment
- TiDB-explain详解
- 【教程】通过lothelper实现短信接收测试
- 小米手机录制数据集软件操作
- 12接口扩展无忧,存储显示充电都拉满,ORICO XDR扩展坞上手
- vue--后台管理系统问题和功能实现思路集锦
- 百度地图开发技术方案及解决办法
- appium第一个脚本
热门文章
- GDUFE ACM-1096
- 解决 U盘安装Windows Server 2012 R2 报错 Windows 无法打开所需的文件 Sources\install.wim...
- maven打包时把依赖的jar包打进去
- 推荐几本lisp的书.
- CompositeUI Demo BankBranchWorkbench
- java容器输入_Java 容器初识篇
- c:foreach中varStatus参数的含义
- Nginx源码分析 - 主流程篇 - 多进程的惊群和进程负载均衡处理(15)
- mvn install跳过测试
- radiogroup多选_【RadioGroup】实现单选并获得所选项值 | 学步园