angularJS constant和value

简介: angularJS可以通过constant(name,value)和value(name,value)对于创建服务也是很重要的。 相同点是:都可以接受两个参数,name和value。 区别: 1.constant(name,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),不过,它们有两个显著的区别:

1.value不可以在config里注入,但是constant可以

2.value可以修改,但是constant不可以修改,一般直接用constant配置一些需要经常使用的数据。

 

 
 
相关文章
|
JSON JavaScript 搜索推荐
angularJS学习小结——filter
angularJS学习小结——filter
148 0
|
前端开发 JavaScript 索引
angular中的装饰器 详解
Angular中的装饰器是一个函数,它将元数据添加到类、类成员(属性、方法)和函数参数。用法:要想应用装饰器,把它放到被装饰对象的上面或左边。 Angular 使用自己的一套装饰器来实现应用程序各部件之间的相互操作 这个地方是前面几个模块模块、指令、组件、依赖注入等从装饰器这个侧面的整理 你需要做的: 1.搞清楚理解TypeScript的装饰器的原理 2.搞清楚这里面每一个装饰器的作用,解决的什么问题,应用场景类装饰器****** Angular 有很多装饰器,它们负责把元数据附加到类上,以了解那些类的设计意图以及它们应如何工作。
1264 0
|
JavaScript 前端开发 移动开发
|
JavaScript 前端开发
AngularJs-变量
Angularjs-变量 名字 : Hello {{name}} ...
789 0