angularJS学习之路(二十三)---创建服务的五大方法---factory

factory()方法:

是创建 和配置服务的最 快捷的方式

factory()函数可以接受两个参数:

name 字符串 :需要注册的服务名

函数function:函数会在angularJS创建服务的实例时被调用,返回对象

angular机制出于内存占用和性能的考虑,

控制器只会在需要的时候被   实例化,不需要的时候就会被销毁

服务需要时才会被实例化,但是它是单例对象,不会被销毁

服务的定义:

服务提供了一种能够在应用的整个生命周期内保持数据的方法,

它能够在控制器之间进行通信,并且能保持数据的一致性

服务提供了把与特点功能相关联的方法集中在一起,变成一个接口供你调用

其实服务的作用用一句话说就是:处理某个特殊的功能的函数接口(API)

服务是一个单例对象,在每个应用中只会被实例化一次   是被$injector实例化,并且延迟加载

什么意思:就是需要的时候才被  实例化

angularJS提供了一些自己封装好的服务,比如:$http,

我们自己创建的服务也是非常有用的,实现特定的功能

在angularJS中,创建服务,首先需要的是注册,服务注册之后,angularJS就可以在编译的时候引用它,在需要的时候才会实例化它,在运行的时候把它作为依赖加入进去,

再次回到factory()方法:举个例子,现在我们需要建立一个硬数据:

var app = angular.module('myApp',[]);

app.factory('myData',function(){

return {

username:'auser'

};

});

上面这个代码块的意思其实很简单,我们注册了一个服务,名称叫做,myData ,它是一个对象,它里面有一个叫做username的属性,这个属性被我们赋值auser   ,然后这个服务,可以在app管理的所有的控制器里面被访问,还有很多地方可以被使用,具体就不说了,

因为服务是单例对象,function函数只可能被调用一次,这个函数是带有参数的,也就是可以有注入依赖,什么意思,就是我们自己定义的服务,它的业务逻辑实现是需要其他的方法或者服务提供帮助,这就叫依赖的简单理解,

这个function的参数可以是函数,可以是数组,等,举个例子说:

依赖其实可以理解为   为了实现我们特点的业务逻辑  而需要   使用到的     资源

依赖某种意思上说   就是一种资源

var app = angular.module('myApp',[]);

app.factory('myData',['$http',function($http){

return {

//这里我们可以利用$http 这个服务去访问网络数据了,

username:'auser'

};

}]);

上面的形式你可以看见,我们使用的方式是这样的,factory(服务名,[依赖1,依赖2,function(参数1,参数2)])

其中参数1,参数2就分别对应了依赖1,依赖2,注意它是按照顺序一一对应的,

它的意思就是:表示有一个函数,它依赖两个东西,然后这两个东西会依次作为参数传入

当然上面的方式还可以更简单点写:

var app = angular.module('myApp',[]);

app.factory('myData',function($http){

return {

//这里我们可以利用$http 这个服务去访问网络数据了,

username:'auser'

};

});

这种写法也是对的,因为$http服务是angularJS自带的

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券