简介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 相关文章推荐
asp 的 分词实现代码
May 24 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
JavaScript定义类的几种方式总结
Jan 06 Javascript
浅谈Javascript中的Function与Object
Jan 26 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 Javascript
web前端vue实现插值文本和输出原始html
Jan 19 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
es6 for循环中let和var区别详解
Jan 12 Javascript
原生js实现弹幕效果
Nov 29 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无限分类的类
2007/01/02 PHP
PHP URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python循环输出三角形图案的例子
2019/11/22 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
关于工资低的辞职信
2014/01/14 职场文书
校园安全教育广播稿
2014/02/17 职场文书
上班玩手机检讨书
2014/02/17 职场文书
产品开发计划书
2014/04/27 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
企业工会工作总结2015
2015/05/13 职场文书
初中政治教学工作总结
2015/08/13 职场文书
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL