如果服务的$get()方法返回的是一个常量
那就没有必要定义一个包含复杂功能的完整服务
可以通过value()函数方便的注册服务
value方法接受两个参数:
name 字符串:需要注册的服务的名字
value 值,常量:将这个值作为可以注入的实例返回
value()方法:返回以name参数的值 为名称 的注册后的服务实例
angular.module('myApp',[]).value('appkey','123123123');
对比前面的constant 你会发现他们完全是一样的,就是函数的名称不一样而已,那么问题来了,这两者之前到底有什么区别呢,什么时候该用哪个呢?
最大的区别是:常量可以注入到配置函数(config)中,而值不行
也就是说value方法定义的服务,是不能被注入到 config的function依赖中的,
angular.module('myApp',[])
.constant('appkey','5555')
.config(function(appkey){
//在这里appkey将被赋值为5555
//就像上面的设置的那样
})
.value('FB','8888')
.config(function(FB){
//这里将抛出一个异常,未知的provider:FB
//因为在config函数内部无法访问这个值
});