AngularJS 服务详细讲解及示例代码


Posted in Javascript onAugust 17, 2016

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

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

有两种方法来创建服务。

工厂

服务

使用工厂方法

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

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 服务详细讲解及示例代码

以上就是对AngularJS 服务的基础资料整理,后续继续整理相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
window.name代替cookie的实现代码
Nov 28 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
JS Replace()的高级使用方法介绍
Jun 29 Javascript
javascript实例分享---具有立体效果的图片特效
Jun 08 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
js中如何完美的解析数据
Mar 18 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
关于JavaScript中异步/等待的用法与理解
Nov 18 Javascript
深入理解jQuery layui分页控件的使用
Aug 17 #Javascript
AngularJS 作用域详解及示例代码
Aug 17 #Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
Aug 17 #Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 #Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 #Javascript
Node.js中使用jQuery的做法
Aug 17 #Javascript
学习Angular中作用域需要注意的坑
Aug 17 #Javascript
You might like
PHP 第二节 数据类型之转换
2012/04/28 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
javascript ajax 仿百度分页函数
2013/10/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
tensorflow更改变量的值实例
2018/07/30 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
学习经验演讲稿
2014/05/10 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
流动人口婚育证明
2014/10/19 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
介绍信格式样本
2015/05/05 职场文书
Spring 使用注解开发
2022/05/20 Java/Android