angularJS constant和value

angularJS能够经过constant(name,value)和value(name,value)对于建立服务也是很重要的。
相同点是:均可以接受两个参数,name和value。
区别:
1.constant(name,value)能够将一个已经存在的变量值注册为服务,并将其注入到应用的其余部分中。其中,name为注册的常量的名字,value为注册的常量的值或对象。
举例:
(1)value为值时:
angular.module('myApp') .constant('apiKey','123123123')
.controller('MyController', function($scope, apiKey) {
// 能够像上面同样用apiKey做为常量
// 用123123123做为字符串的值
$scope.apiKey = apiKey;
});
(2)value为对象时:
angular.module('myApp') .constant('apiKey',{name:[],age:[],date:[]})
.factory('myFactory',function(apiKey,$scope){
apiKey.name = "lyy";
});
2.value(name,value)的name一样是须要注册的服务名,value将这个值将做为能够注入的实例返回。
ngular.module('myApp')
.value('apiKey','123123123');
 
它们最大的区别是:常量能够注入到配置函数中,而值不行。
一般状况下,能够经过value()来注册服务对象或函数,用constant()来配置数据。
angular.module('myApp', [])
.constant('apiKey', '123123123')
.config(function(apiKey) {
// 在这里apiKey将被赋值为123123123
// 就像上面设置的那样
})
.value('FBid','231231231')
.config(function(FBid) {
// 这将抛出一个错误,未知的provider: FBid
// 由于在config函数内部没法访问这个值
});

 

综上,当咱们想要建立一个服务,而且这个服务只须要返回数据时,就可使用constant(name,value)和value(name,value),不过,它们有两个显著的区别:api

1.value不能够在config里注入,可是constant能够ide

2.value能够修改,可是constant不能够修改,通常直接用constant配置一些须要常常使用的数据。函数

相关文章
相关标签/搜索