简介AngularJS中使用factory和service的方法


Posted in Javascript onJune 17, 2015

 AngularJS支持使用服务的体系结构“关注点分离”的概念。服务是JavaScript函数,并负责只做一个特定的任务。这也使得他们即维护和测试的单独实体。控制器,过滤器可以调用它们作为需求的基础。服务使用AngularJS的依赖注入机制注入正常。

AngularJS提供例如许多内在的服务,如:$http, $route, $window, $location等。每个服务负责例如一个特定的任务,$http是用来创建AJAX调用,以获得服务器的数据。 $route用来定义路由信息等。内置的服务总是前缀$符号。

有两种方法来创建服务。

  1.     工厂
  2.     服务

使用工厂方法

使用工厂方法,我们先定义一个工厂,然后分配方法给它。

var mainApp = angular.module("mainApp", []);
   mainApp.factory('MathService', function() {   
     var factory = {}; 
     factory.multiply = function(a, b) {
      return a * b 
     }
     return factory;
   });

使用服务方法

使用服务的方法,我们定义了一个服务,然后分配方法。还注入已经可用的服务。

mainApp.service('CalcService', function(MathService){
  this.square = function(a) { 
 return MathService.multiply(a,a); 
 }
});

例子

下面的例子将展示上述所有指令。
testAngularJS.html

<html>
<head>
  <title>Angular JS Forms</title>
</head>
<body>
  <h2>AngularJS Sample Application</h2>
  <div ng-app="mainApp" ng-controller="CalcController">
   <p>Enter a number: <input type="number" ng-model="number" />
   <button ng-click="square()">X<sup>2</sup></button>
   <p>Result: {{result}}</p>
  </div>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script>
   var mainApp = angular.module("mainApp", []);
   mainApp.factory('MathService', function() {   
     var factory = {}; 
     factory.multiply = function(a, b) {
      return a * b 
     }
     return factory;
   }); 

   mainApp.service('CalcService', function(MathService){
      this.square = function(a) { 
      return MathService.multiply(a,a); 
     }
   });

   mainApp.controller('CalcController', function($scope, CalcService) {
      $scope.square = function() {
      $scope.result = CalcService.square($scope.number);
     }
   });
  </script>
</body>
</html>

结果

在Web浏览器打开textAngularJS.html。看到结果如下。

简介AngularJS中使用factory和service的方法

Javascript 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
Javascript Tab 导航插件 (23个)
Jun 11 Javascript
aspx中利用js实现确认删除代码
Jul 22 Javascript
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
May 26 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
Dec 17 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
详解vue组件开发脚手架
Jun 15 Javascript
理理Vue细节(推荐)
Apr 16 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
简介AngularJS的视图功能应用
Jun 17 #Javascript
在AngularJS中使用AJAX的方法
Jun 17 #Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 #Javascript
AngularJS的表单使用详解
Jun 17 #Javascript
举例讲解AngularJS中的模块
Jun 17 #Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 #Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 #Javascript
You might like
PHP设计模式 注册表模式
2012/02/05 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
dedecms中使用php语句指南
2014/11/13 PHP
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python检测IP地址变化并触发事件
2018/12/26 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Python之字典对象的几种创建方法
2020/09/30 Python
python 写一个文件分发小程序
2020/12/05 Python
平面设计师的工作职责
2013/11/21 职场文书
项目经理任命书
2014/06/04 职场文书
化学教育专业自荐信
2014/07/04 职场文书
信访稳定工作汇报
2014/10/27 职场文书
停发工资证明范本
2015/06/12 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript