简介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 相关文章推荐
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
前端主流框架vue学习笔记第一篇
Jul 26 Javascript
老生常谈JavaScript面向对象基础与this指向问题
Oct 16 Javascript
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 Javascript
vue 单页应用和多页应用的优劣
Oct 22 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+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
js表单登陆验证示例
2016/10/19 Javascript
拖动时防止选中
2017/02/03 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
微信小程序后端实现授权登录
2020/02/24 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
python五子棋游戏的设计与实现
2019/06/18 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Python创建临时文件和文件夹
2020/08/05 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
大学生暑期实践感言
2014/02/26 职场文书
《搭石》教学反思
2014/04/07 职场文书
安全生产目标责任书
2014/04/14 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
银行服务理念口号
2015/12/25 职场文书
大学生社会服务心得体会
2016/01/22 职场文书