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配置一些需要經常使用的數據。
以上所述是小編給大家介紹的AngularJS constant和value區別詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。