angularjs 服务(service)

2017-03-13  本文已影响119人  杨杨1314

在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服务的一些了解。借鉴了前人的经验。欢迎指正。

上一篇下一篇

猜你喜欢

热点阅读