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配置一些須要常常使用的數據。函數

相關文章
相關標籤/搜索