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 相关文章推荐
用js自动判断浏览器分辨率的代码
Jan 28 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
js控制网页前进和后退的方法
Jun 08 Javascript
jquery.map()方法的使用详解
Jul 09 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
Vue组件全局注册实现警告框的实例详解
Jun 11 Javascript
vue.js实现二级菜单效果
Oct 19 Javascript
9个JavaScript日常开发小技巧
Oct 06 Javascript
React服务端渲染原理解析与实践
Mar 04 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP自定义错误用法示例
2016/09/28 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
在模板页面的js使用办法
2010/04/01 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
跟老齐学Python之网站的结构
2014/10/24 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python使用KNN算法手写体识别
2018/02/01 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python清除函数占用的内存方法
2018/06/25 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
中专生学习生活的自我评价分享
2013/10/27 职场文书
英语商务邀请函范文
2014/01/16 职场文书
护士自我评价
2014/02/01 职场文书
岗位职责风险防控
2014/02/18 职场文书
安全生产责任书
2014/03/12 职场文书
教师党员一句话承诺
2014/03/28 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
Python学习之异常中的finally使用详解
2022/03/16 Python