美文网首页
angular五大服务及区别(其四)

angular五大服务及区别(其四)

作者: 依依玖玥 | 来源:发表于2020-01-17 12:51 被阅读0次

    一.constant服务:

    app.constant('name',obj)

    name为服务的名字,obj为一个json对象.

    constant创建服务返回一个json对象(也就是第二个参数中传入的对象),这个对象里可以有参数,可以有方法,并且,属性和方法都可以在控制器中修改,新增,但是按照它的设计本意,一般constant创建的服务不会去修改它的内容,需要修改内容,最好用value来创建服务.

    二.value服务:

    app.value('name',obj)

    name为服务的名字,obj为一个json对象.

    value创建服务返回一个json对象(也就是第二个参数中传入的对象),这个对象里可以有参数,可以有方法,并且,属性和方法都可以在控制器中修改,新增,按照它的设计本意,如果属性和方法需要被修改内容,就用value来创建服务.

    constant和value主要就是用于存放一些数据或方法以供使用,区别是constant一般是存放固定内容,value存放可能会被修改的内容

    三.factory服务

    app.factory('name',function(){returnobj})

    name为服务的名字,第二个参数传入一个函数,函数需要有一个返回值obj,返回一个对象.实际被注入的服务就是这个对象.

    factory服务是最常见最常用的服务类型,几乎可以满足90%的自己开发的需求,使用它可以编写一些逻辑,通过这些逻辑最后返回所需要的对象.比如使用$http来获取一些数据.我们就在factory创建的服务里抓取数据,最后返回.

    它和constant,value最大的区别是,factory服务是有一个处理过程,经过这个过程,才返回结果的.

    四.service服务

    app.service('name',constructor)

    name为服务的名字,constructor是一个构造函数.

    service和factory的区别在于,它第二个参数传入的是一个构造函数,最后被注入的服务是这个构造函数实例化以后的结果.所以基本上使用service创建的服务的,也都可以使用factory来创建.

    所以这里,factory服务的第二种写法和使用service是一致的:


    相关文章

      网友评论

          本文标题:angular五大服务及区别(其四)

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