AngularJS学习(八) --服务Service

一、什么是服务

 Angular 服务是为web应用执行特定任务的单例对象或方法。简而言之,就是controller共用的函数。

在其他语言中如java便有这样的概念,其作用就是对外提供某个特定的功能,如消息服务,文件压缩服务等,是一个独立的模块。ng的服务是这样定义的:

Angular services are singletons objects or functions that carry out specific tasks common to web apps.


因为我们一般不复用controller,这就需要抽象出一个公共的方法来为controller提供复用


Services都是单例的,就是说在一个应用中,每一个Serice对象只会被实例化一次(用$injector服务),主要负责提供一个接口把特定函数需要的方法放在一起,使用时候,我们不需要创建他,只需要将它注入到controller,其他服务或者指令中即可。

二、AngularJS内置的服务

ng提供了很多内置的服务,可以到API中查看 http://docs.angularjs.org/api/

例如$location,$resource,$scope

三、自定义服务

    使用module来创建, 常用的有3种创建方式 provider,service,factory

 1.factory方式

步骤一:定义服务

  service.js

var myservice = angular.module('myservice',[]); //申明一个module模块
myservice.factory('factorytest',function($window){   //直接.facotry创建,有2个参数,1.服务名 2.服务执行的函数
	var test = {                               //服务中定义一些属性等
			firstname:'zhang',
			lastname:function(){
				return '三';
			}
	};
	return test;											//服务返回值
}).factory('foo', function() {                     //多个服务可以接着用.factory
	  var thisIsPrivate = "Private";
	  function getPrivate() {                     //服务中还可一定义一些函数
	    return thisIsPrivate;
	  }
	  return {
		    variable: "This is public",
		    getPrivate: getPrivate
	  };
});

   步骤二: 使用服务

 

var myapp = angular.module('myapp',['myservice']);  //依赖注入模块
myapp.controller('testservice',function($scope,factorytest){  //注入服务
	alert(factorytest.firstname +"        "+ factorytest.lastname());
});
2.provider

3.service



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值