angular自定义服务

共有5种方法用来创建服务:


factory(name,getFn):函数可以接受两个参数。name(字符串)需要注册的服务名。getFn(函数),暴露服务。

angular.module('myApp')
.factory('myService', function() {
        return {
                       'username': 'auser'
                   };
         });


service(name,constructor)

使用service()可以注册一个支持构造函数的服务,它允许我们为服务对象注册一个构造函数。
service()方法接受两个参数。name(字符串)要注册的服务名称。constructor(函数)。


constant()

可以将一个已经存在的变量值注册为服务,并将其注入到应用的其他部分当中。例如,假设我们需要给后端服务一个apiKey,可以
用constant()将其当作常量保存下来。constant()函数可以接受两个参数。name(字符串)需要注册的常量的名字。value(常量)需要注册的常量的值(值或者对象)。

angular.module('myApp') .constant('apiKey','123123123');

angular.module('myApp')
.controller('MyController', function($scope, apiKey) {
// 可以像上面一样用apiKey作为常量
//用123123123作为字符串的值
$scope.apiKey = apiKey;
});


value()

如果服务的$get方法返回的是一个常量,那就没要必要定义一个包含复杂功能的完整服务,可以通过value()函数方便地注册服务。
value()方法可以接受两个参数。
name(字符串)
同样是需要注册的服务名。
value(值)
将这个值将作为可以注入的实例返回。
value()方法返回以name参数的值为名称的注册后的服务实例。
angular.module('myApp')
.value('apiKey','123123123');

provider()

所有服务工厂都是由$provide服务创建的,$provide服务负责在运行时初始化这些提供者。
提供者是一个具有$get()方法的对象,$injector通过调用$get方法创建服务实例。$provider提供了数个不同的API用于创建服务,每
个方法都有各自的特殊用途。
所有创建服务的方法都构建在provider方法之上。provider()方法负责在$providerCache中注册服务。
如果希望在config()函数中可以对服务进行配置,必须用provider()来定义服务。

provider()方法为服务注册提供者。可以接受两个参数。
name(字符串)
name参数在providerCache中是注册的名字。name+Provider会成为服务的提供者。同时name也是服务实例的名字。
例如,如果定义了一个githubService,那它的提供者就是githubServiceProvider。
aProvider(对象/函数/数组)
aProvider可以是多种形式。
如果aProvider是函数,那么它会通过依赖注入被调用,并且负责通过$get方法返回一个对象。
如果aProvider是数组,会被当做一个带有行内依赖注入声明的函数来处理。数组的最后一个元素应该是函数,可以返回一个带有$get方法
的对象。
如果aProvider是对象,它应该带有$get方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值