美文网首页
angularjs 服务(service)

angularjs 服务(service)

作者: 杨杨1314 | 来源:发表于2017-03-13 18:17 被阅读119次

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

    相关文章

      网友评论

          本文标题:angularjs 服务(service)

          本文链接:https://www.haomeiwen.com/subject/exufnttx.html