angularjs中provider,factory,service的区别和用法
angularjs中provider,factory,service的区别和用法
provider->factory->service
都能提供service,但是又有差别
service
第一次被注入时实例化,只实例化一次,整个应用的生命周期中是个单例模式,可以用来在controller之间传递数据
//使用new关键字实例化,所以直接使用this定义service
//不知道为啥就看看js中的this怎么玩的
.service('myService', ['', function() {
this.getName = function() {
return 'CooMark';
}
}])
factory
//返回一个对象,可能这是你喜欢的方式,使用call的方式实例化,其他的和service一样
//Internally this is a short hand for $provide.provider(name, {$get: $getFn}).
angular.module('app', [])
.factory('myFactory', ['', function() {
return {
getName: function() {
return 'CooMark';
},
getTitle: function() {
return 'Engineer'
}
}
}])
provider
这是唯一能注入到config的service,这样定义的service在你开始注入之前就已经实例化,开发共享的模块的时候常常使用它,能够在使用之前进行配置,比如你可能需要配置你的服务端的url
//两种形式的参数,都是为了得到一个带有$get属性的对象
// Object: then it should have a $get method. The $get method will be invoked using $injector.invoke() when an instance needs to be created.
// Constructor: a new instance of the provider will be created using $injector.instantiate(), then treated as object.
angular.module('app', [])
.config(['$provider', function() {
$provider.provider('myProvider', function() {
this.$get = function() {
return {
getName: function() {
return 'CooMark';
}
}
}
});
$provider.provider('myProvider', {
$get: function() {
return {
getName: function() {
return 'CooMark';
}
}
}
});
}])

参考:
https://docs.angularjs.org/api/auto/service/$provide
http://www.cnblogs.com/joyco773/p/5702337.html
http://www.360doc.com/content/16/0728/14/22900036_579091190.shtml
https://my.oschina.net/tanweijie/blog/295067
angularjs中provider,factory,service的区别和用法的更多相关文章
- AngularJS 服务 provider factory service及区别
一.概念说明 1.服务是对公共代码的抽象,如多个控制器都出现了相似代码,把他们抽取出来,封装成一个服务,遵循DRY原则,增强可维护性,剥离了和具体表现相关的部分,聚焦于业务逻辑或交互逻辑,更加容易被测 ...
- AngularJS 中 Provider 的用法及区别
在一个分层良好的 Angular 应用中,Controller 这一层应该很薄.也就是说,应用里大部分的业务逻辑和持久化数据都应该放在 Service 里. 为此,理解 AngularJS 中的几个 ...
- AngularJS进阶(三十三)书海拾贝之简介AngularJS中使用factory和service的方法
简介AngularJS中使用factory和service的方法 AngularJS支持使用服务的体系结构"关注点分离"的概念.服务是JavaScript函数,并负责只做一个特定的 ...
- 简述Linq中.ToList(), .AsEnumerable(), AsQueryable()的区别和用法
[TOC] 这3个方法的功能完全不同, 应按照具体业务场景使用. AsQueryable() 先说说什么是 IQueryable IQueryable 是当前的 data provider 返回的类型 ...
- AngularJS 中的 factory、 service 和 provider区别,简单易懂
转自:http://blog.csdn.net/ywl570717586/article/details/51306176 初学 AngularJS 时, 肯定会对其提供 factory . serv ...
- AngularJS 讲解五, Factory ,Service , Provider
一. 首先说一下,为什么要引入Factory,Service和Provider这三个Service层. 1.因为我们不应该在controller层写入大量的业务逻辑和持久化数据,controller层 ...
- 图论中DFS与BFS的区别、用法、详解…
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 图论中DFS与BFS的区别、用法、详解?
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 简介AngularJS中使用factory和service的方法
AngularJS支持使用服务的体系结构“关注点分离”的概念.服务是JavaScript函数,并负责只做一个特定的任务.这也使得他们即维护和测试的单独实体.控制器,过滤器可以调用它们作为需求的基础.服 ...
随机推荐
- Codeforces CF#628 Education 8 A. Tennis Tournament
A. Tennis Tournament time limit per test 1 second memory limit per test 256 megabytes input standard ...
- ajax请求action返回json数据
1,服务端: HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType(&q ...
- bzoj3673可持久化线段树实现可持久化数组实现可持久化并查集(好长)
线段树只用叶子节点感觉莫名浪费,,, 感觉真好写(刚从未来程序逃回来的人) #include <cstdio> #define mid ((l+r)>>1) ,ca,x,y; ...
- 懒加载lazyload
什么是懒加载 懒加载就是当你做滚动到页面某个位置,然后再显示当前位置的图片,这样做可以减少页面请求. 懒加载:主要目的是作为服务器前端的优化,减少请求数或延迟请求数,一些图片非常多的网站中非常有用,在 ...
- 问题2: 安装cocoaPods出现的一系列问题
在新电脑上安装cocoaPods的时候,出现了一系列的问题,现在记录下来,方便查看 1.出现 Invalid mark letter (press RETURN) 解决方案:输入 :wq 即可 2. ...
- 关于ScrollView嵌套ListView问题
Android开发之ScrollView中嵌套ListView的解决方案 原文:http://blog.csdn.net/minimicall/article/details/40983331 ...
- C# winfrom HttpWebRequest 请求获取html网页信息和提交信息
string result =GetRequest("http://localhost:32163/DuoBao/ajax.aspx", "time=5"); ...
- 免费SVN服务器笔记
前言: 笔者有个项目,需要类似公司一样进行源代码管理.鉴于很多团队一样,对资金资源限制,只能寻找免费的SVN服务器 于是在BD上搜索一大推资料,很多都是google的,但是GG经常无法正常访问,给项目 ...
- js 的一些知识 摘自http://img0.pconline.com.cn/Pc_intranet/1105/13/313647_7.pdf
Js 问题分析--js 影响页面性能现状分析:问题陈述分析问题:抽象问题根源,通过实例或推理证明问题的严重性问题引申:以现有问题为点开始扩散,这将导致其它什么问题,或同一类型的问题问题总结:从分散开始 ...
- ORA-01861: 文字与格式字符串不匹配
问题:插入数据不成功 解决:借口实现类里面的sql语句带值放到数据库中运行,如果不成功是sql语句的错误.