1.factory

factory , 就是你提供一个方法, 该方法返回一个对象的实例, 对于 AngularJS 的 factory 来说, 就是先定义一个对象, 给这个对象添加属性和方法, 然后返回这个对象, 例如:

var app = angular.module('MyApp', []);
app.factory('MyFactory', function() {// define result object of factory.var result = {};// add some property and method to the objectresult.greeting = 'Hello from factory.';// return the object;return result;
});

最后 controller 拿到的就是 result 对象:

m1.controller('Aaa',['$scope','myFactory',function($scope,myFactory){console.log( myFactory);//这里的myFactory就是result对象
}]);

2.service

service 通过 new 运算符进行实例化, 可以认为是一个类型, 只要把属性和方法添加到 this 对象上即可, 不用显式返回什么对象, 比如下面的代码:

app.service('MyService', function() {this.greeting = 'Hello from service';
});

controller 拿到的对象就是上面代码中 this 指向的对象,

m1.controller('Aaa',['$scope','myService,function($scope,myService){console.log(myService);//这里的myService就是上面this指向的对象,相当于var myService = new myService();
}]);

3.provider

与 factory 和 service 稍有不同的是, provider 必须提供一个 $get 方法, $get 方法和 factory 要求是一致的, 即: 先定义一个对象, 给这个对象添加属性和方法, 然后返回这个对象, 例如:

app.provider('MyProvider', function() {this.$get = function() {var result = {};result.greeting = 'Hello from provider';return result;}
})

最后 controller 拿到的对象就是 provider 的 $get 方法返回的对象,

m1.provider('myRandomNum',function(){return {bolInt : false,int : function(argBol){if(argBol){this.bolInt = true;}else{this.bolInt = false;}},$get : function(){var This = this;return function(num1,num2){return This.bolInt ? Math.round(Math.random()*(num2 - num1)) + num1 : Math.random()*(num2 - num1) + num1;};}};});m1.config(['myRandomNumProvider',function(myRandomNumProvider){myRandomNumProvider.int(false);}]);m1.controller('Aaa',['$scope','myRandomNum',function($scope,myRandomNum){console.log( myRandomNum(-3,6) );  //这里的}]);

注意:

provider 的特殊之处就是可以在 module 启动时进行配置, 从而达到特殊的用途

m1.config(['myRandomNumProvider',function(myRandomNumProvider){myRandomNumProvider.int(false);}]);

参考:http://ju.outofmemory.cn/entry/121904

转载于:https://www.cnblogs.com/toodeep/p/4987777.html

factory service provide自定义服务相关推荐

  1. Linux service之自定义服务

    前言 服务是应用程序存在的一种形式,静态的程序(即代码)运行成为进程运行于后台,从而执行规定的业务逻辑,对于后端程序而言通常是监听端口以处理来自客户端的请求.但这并非是一个服务,而只是一个运行于后台的 ...

  2. Android11(RK3568)自定义服务制作(2)-Service制作

    上一篇介绍了如何在android中制作kernel驱动,并在驱动中留下了dev和sys两种接口供应用程序调用. Android11(RK3568)自定义服务制作(1)-Kernel驱动 一,驱动测试 ...

  3. Service 服务详解 及自定义服务模板

    文章目录 1.服务简介 2.服务的生命周期 1) Service 的 启动 停止 2).服务的生命周期的方法 3.使用startService 启动后服务的生命周期 1).文件结构 2) activi ...

  4. 如何使用Create-React-App和自定义服务人员构建PWA

    Note: This is not a primer on create-react-app or what a service worker is. This post assumes prior ...

  5. ajax 服务路由,Angular自定义服务路由

    什么是跨域 不同域名之间进行数据访问,默认情况下是不允许的. 是谁导致了跨域 是浏览器导致了跨域,为了数据的安全. 怎样解决跨域 使用插件 JSONP Ajax和jsonp是同一个东西么 Ajax的核 ...

  6. linux之systemctl设置自定义服务

    1 问题 在linux系统上设置自定义服务,或者让我的服务开机就运行起来,比如我们就以tomcat服务为例子 /usr/local/tomcat/bin/startup.sh 启动tomcat的脚本 ...

  7. 第6章 服务模式 Service Interface(服务接口)

    Service Interface(服务接口) 上下文 您正在设计企业应用程序,并且需要能够通过网络使用其部分功能.此功能需要能够被各类系统使用,因此互操作性是设计的重要方面.除互操作性之外,可能还需 ...

  8. ROS 学习笔记(三):自定义服务数据srv+server+client 示例运行

    ROS 学习笔记(三):自定义服务数据srv+Server+Client 示例运行 一.自定义服务数据: 1.向功能包添加自定义服务文件(AddTwoInts.srv) cd ~/catkin_ws/ ...

  9. 42.angularJS自定义服务

    转自:https://www.cnblogs.com/best/tag/Angular/ 1. 你可以创建自定义服务,链接到你的模块中: 1 <!DOCTYPE html> 2 <h ...

最新文章

  1. 2016012017+小学四则运算练习软件项目报告
  2. android--系统jar包引用
  3. 【集合工具类:Collections】
  4. 如何从零学习Python----知乎答案
  5. 外媒:英特尔未来10年可能投资950亿美元在欧洲新建8家芯片厂
  6. PAT-乙级-1031. 查验身份证(15)
  7. 201903版的idea markdown无法预览的问题
  8. 数组元素的填充与替换、排序和复制
  9. 第二章 算法 (大话数据结构)
  10. 均衡器算法_必须像算法一样对算法进行仔细调整。 怎么样? 算法均衡器
  11. visio程序流程图绘制教程
  12. Unity第一视角流血受伤受攻击屏幕流血效果
  13. 自己搭建安卓app结合苹果CMS后台视频管理
  14. JDO与JPA哪个更好?
  15. RASNet视频目标跟踪论文笔记
  16. csgo删除机器人_《CSGO》补丁突然移除补位机器人 队友掉线只能4v5!
  17. Item 40: Use std::atomic for concurrency, volatile for special memory.
  18. C#实现数独解题及随机出题的思路及源码分享
  19. 可nbsp;爱nbsp;女nbsp;人
  20. 蓝桥杯单片机比赛学习:9、PCF8591的基本原理和使用方法

热门文章

  1. javascript中addEventListener与removeEventListener
  2. 一行代码实现数组降维去重排序
  3. python进阶07 MySQL
  4. 在两个不同域中的WINDOWS 2003活动目录做迁移笔记
  5. 5G时代的无线宽带新技术
  6. Map接口与学习系列(二)---LinkedHashMap
  7. SQL SERVER--单回话下的死锁
  8. Linux知识框架梳理
  9. Arduino入门笔记(6):温度传感器及感温杯实验
  10. 谈论 NOD32: 教育网超级 病毒更新服务器: http://222.197.166.33/main.htm