angular 关于 factory、service、provider的相关用法
2016-03-17 22:30
513 查看
1、factory()
Angular里面创建service最简单的方式是使用factory()方法。factory()让我们通过返回一个包含service方法和数据的对象来定义一个service。在service方法里面我们可以注入services,比如 $http 和 $q等。
?
在应用里面可以很容易地使用factory ,需要到的时候简单地注入就可以了
?
在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择。
注意:需要使用.config()来配置service的时候不能使用factory()方法
2、service()
service()通过构造函数的方式让我们创建service,我们可以使用原型模式替代javaScript原始的对象来定义service。和factory()方法一样我们也可以在函数的定义里面看到服务的注入
?
在应用里面使用service()方法
?
service()方法很适合使用在功能控制比较多的service里面
注意:需要使用.config()来配置service的时候不能使用service()方法
3、provider()
provider()是创建service最底层的方式,这也是唯一一个可以使用.config()方法配置创建service的方法不像上面提到的方法那样,我们在定义的this.$get()方法里面进行依赖注入
?
为了给service进行配置,我们可以将provider注入到.config()方法里面
?
?
当我们希望在应用开始前对service进行配置的时候就需要使用到provider()。比如,我们需要配置services在不同的部署环境里面(开发,演示,生产)使用不同的后端处理的时候就可以使用到了
当我们打算发布开源provider()也是首选创建service的方法,这样就可以使用配置的方式来配置services而不是将配置数据硬编码写到代码里面。
还可以看看这篇翻译:http://www.oschina.net/translate/top-10-mistakes-angularjs-developers-make
相关文章推荐
- angularJS过滤器和自定义的过滤器
- angularjs,ng-include引入html代码片段
- angular.js学习笔记(三)
- 【一起学AngularJS】第八章、添加链接和图片
- Angularjs 滚动加载更多数据
- angular.js学习笔记(二)
- express 4.x与angular最简单的通信
- angularjs 滚动加载更多数据
- [AngularJS] Angular 1.5 multiple transclude
- Angularjs 滚动加载更多数据
- angularjs的重要部分
- angularJS思维导图02 作用域和控制器
- Angularjs Directive - Compile vs. Link
- AngularJS 简介
- angular.js学习笔记(一)
- BackboneJS与AngularJS区别
- Implementing Angular2 forms – Beyond basics (part 3)
- 深入了解前端路由的实现机制以及angularjs-route-ui的使用
- 结构-行为-样式-angularJs
- [AngularJS] Transforming raw JSON data to meaningful output in AngularJS