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區別詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答