AngularJS学习(八) --服务Service
来源:互联网 发布:单片机swap是什么意思 编辑:程序博客网 时间:2024/04/26 17:30
一、什么是服务
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
1 0
- AngularJS学习(八) --服务Service
- Android学习八 Service服务
- AngularJS 服务(Service)
- AngularJs Service-自定义服务
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- angularJS 服务(service)
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- AngularJS 服务(Service)
- angularjs service各种服务
- AngularJs服务Service
- angularJs中的service服务
- angularjs 服务(service)
- AngularJS 服务(Service)
- js刷新页面方法大全
- Java不定参数Object… obj说明
- DLL+ ActiveX控件+WEB页面调用例子
- 自定义ListView适配器onclick
- block:ROW scheduling algorithm
- AngularJS学习(八) --服务Service
- Notes
- char*,char[],string,cstring
- ElasticSearch模块Cluster
- UploadFileUtil
- Object C 类-对象-方法
- ieee80211_tx_pending分析
- ++i 真的比 i++ 性能高吗?
- android 特殊符号开头的联系人归并至“#”下