在angularjs中,服务是一个函数或者对象,使用它,需要在controller中定义。angularjs中有30多个服务。
一:angularjs内置的服务:$timeout,$http,$interval...
例如,$interval来实现显示当前时间:
$interval服务这个例子是用$interval 时间间隔服务,首先controller中要引用该服务。其次,$interval是被当作一个函数来用的。
二:深入浅出自定义服务
在angular中为我们提供了三种不同的方式来实现自定义服务,他们分别是系统内置的$provider、module中的service和module中的factory。
1:service 是用"new"关键字实例化的。因此,应该给"this"添加属性,然后 service 返回"this"。把service 传进 controller 之后,在 controller 里 "this" 上的属性 就可以通过 service 来使用了。
service这是一个简单的服务,相当于一个类对象,类似于php封装的一个类,在controller中引入,调用其中的函数,这个函数的相关业务逻辑在类函数中处理了。
2:系统内置的$provider 。当你想要在 service 对象启用之前,先进行模块范围的配置,那就应该用 provider.例如:
$provide这种服务就是直接在module中注入$provide ,然后在module中依次定义对个服务。
定义单个服务的语法为:$provide.proviver
实现对象的返回语法为:this.$get =function(){...}
controller里面调用自定义服务controller 调用的时候要分别把自定义的服务引入,就像$scope一样。
3:module中的service,可以借助config来完成服务的定义。这种方式相对于$provider来说使用起来比较方便。
config 自定义服务controller调用服务的方法是一样的。
三: Factory方法直接把一个函数当成一个对象的$get 方法可以直接返回字符串,用 Factory 就是创建一个对象,为它添加属性,然后把这个对象返回出来。比$provider使用起来更加方便。
factory 比$provider方便四:三者的区别:provider需要借助$get来实现,而其余的两者都不需要。
以上就是对于angularjs服务的一些了解。借鉴了前人的经验。欢迎指正。
网友评论