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 相关文章推荐
可以将word转成html的js代码
Apr 11 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
May 19 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
javascript修改IMG标签的src问题
Mar 28 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
写一个Vue Popup组件
Feb 25 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 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操作XML作为数据库的类
2010/12/19 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP静态成员变量
2017/02/14 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python中的itertools的使用详解
2020/01/13 Python
django配置app中的静态文件步骤
2020/03/27 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
公司年会抽奖活动主持词
2014/03/31 职场文书
房屋转让协议书范本
2014/04/11 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
在Python中如何使用yield
2021/06/07 Python