AngularJs几种服务区别
来源:互联网 发布:phpmyadmin连接数据库 编辑:程序博客网 时间:2024/04/30 00:54
AngularJs中可以使用两种途径来创建自定义服务:
- 使用模块内置的
$provide
方法- 直接调用
factory service constant value
方法
下面说说这几种函数之间的区别:
$get
的函数返回这个这个服务的实例。否则的话,Angular 假设你已经产生了一个构造函数,当被调用时,创建这个实例 此函数是创建服务最具有变现力,相应地也是最复杂的,对于大多数情况,都没必要使用此函数,不过其对于测试和调试是极其有用的。 1.当我们希望在应用开始前对service进行配置的时候就需要使用到provide()。比如,我们需要配置service在不同的部署环境里面(开发,演示,生产)使用不同的后端处理的时候就可以使用到了。
2. 当我们打算发布开源provide()也是首选创建service的方法,这样就可以使用配置的方式来配置service而不是将配置数据硬编码写到代码里面。 factory(name,
$getFunction()
) 一个不可配置的、简单逻辑的服务。你指定一个函数,当被调用时,返回服务实例。你 可 认 为 是provider(name,{$get:$getFunction()})
在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择。注意:需要使用.config()来配置service的时候不能使用factory()方法 service(name, constructor() ) 一个不可配置的、复杂逻辑的服务。有点类似于带构造函数的 provider,Angular 调用它来创建服务实例。 service()方法很适合使用在功能控制比较多的service里面在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器)才会被清除。而controllers在不需要的时候就会被销毁了。
这就是为什么使用controllers在应用里面传递数据不可靠的原因,特别是使用routing的时候。services在应用的controllers、 方法、数据之前起到了很关键的作用
现在我们开始看怎么创建service。每个方法我们都会看到下面两个一样的参数:
name-我们要定义的service的名字
function-service方法
他们都创建了相同的底层对象类型。实例化后,他们都创建了一个service,这些对象没有什么功能上的差别。
至于在工程实践中选择何种形式的服务,可以遵循下列决策流程:
1. 需要全局的可配置参数 ==>Provider2. 是纯数据,没有行为 ==>Value3. 只new一次,不用参数 ==>Service4. 拿到类,自己new出实例 ==>Factory5. 拿到函数,自己调用 ==>Factory
以上只是基本决策,更加敏捷的方式:
是纯数据,先用Value,当发现需要添加行为时,改写为Service;或当发现需要通过计算给出结果时,改写为Factory;当发现需要进行全局配置时,改写为Provider
官方开发指南的对比表:
关于Angular服务,更多详细可见另外一篇文章。
0 0
- AngularJs几种服务区别
- angularjs中的几种服务的详细分析(转)
- AngularJs 服务区别小Demo
- angularJS各种自定义服务的区别
- angularjs 服务
- AngularJs服务
- AngularJS 服务
- AngularJS服务
- AngularJs服务
- AngularJS 服务
- angularjs->服务
- angularjs服务
- angularjs-服务
- AngularJS 服务
- angularjs服务
- angularjs 服务
- angularJS 服务
- angularjs服务
- JQuery如何实现双击事件时不触发单击事件
- 使用Ambari快速部署Hadoop大数据环境
- Java中this关键字高级用法
- Android 中的那些策略模式
- Tomcat、MyEclipse和MySQL的连接与配置
- AngularJs几种服务区别
- 367. Valid Perfect Square
- iOS中 CocoaPods Mac App的安装和使用 韩俊强的博客
- 【Spring】Spring Mvc上传文件
- SQL*Plus用法指南
- 删除连续相同的字符串
- 初步认识UML
- tomcat
- 九度+计算表达式模拟+scanf读取数据的灵活运用和运算级的处理