前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >angularJS学习之路(二十三)---创建服务的五大方法---factory

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

作者头像
wust小吴
发布2019-07-08 16:50:28
5540
发布2019-07-08 16:50:28
举报
文章被收录于专栏:风吹杨柳风吹杨柳

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自带的

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档