根据我的理解文档,Constant和Value之间唯一的具体差异是,可以在apps配置阶段使用Constant,而Value仅在运行阶段可用。
我很好奇为什么在这种情况下需要价值观?他们不是真的只是限制常量吗?
常数可以在任何地方注入。
一个常量不能被装饰器截取,这意味着一个常量的值永远不能改变。
var app = angular.module('app',[]); app.constant('PI',3.14159265359); app.config(function(PI){ var radius = 4; //PI can be injected here in the config block var perimeter = 2 * PI * radius; }); app.controller('appCtrl',function(PI) { var radius = 4; // calculate area of the circle var area = PI * radius * radius; });
值不同于常量,因为该值不能注入到配置中,但它可以被装饰器拦截。
var app = angular.module('app',[]); app.value('greeting','Hello'); app.config(function ($provide) { $provide.decorator('greeting',function ($delegate) { return $delegate + ' World!'; }); });