可以使用AngularJS将常量注入另一个常量吗?
例如
var app = angular.module('myApp'); app.constant('foo', { message: "Hello" } ); app.constant('bar', ['foo', function(foo) { return { message: foo.message + ' World!' } }]);
我需要使用角度常数,因为我需要将其注入配置程序中。即
app.config(['bar', function(bar) { console.log(bar.message); }]);
我知道您只能将常量和提供程序注入到配置例程中,并且我的理解是您可以将依赖项注入到提供程序中,但是,这似乎并不是这种情况下的最佳方法…
在此先感谢您的帮助!
没错,将foo和bar都注册为常量是不可能的。
同样,使用提供程序作为解决方法,除了必须将数据存储在提供程序实例中之外,您几乎可以理解:
var app = angular.module('myApp', []); app.constant('foo', { message: 'Hello' }); app.provider('bar', ['foo', function(foo) { this.data = { message: foo.message + ' World!' }; this.$get = function() { return this.data; }; }]);
然后在配置块中,注入栏的提供程序实例(不是栏实例,因为它在配置阶段尚不可用):
app.config(['barProvider', function(barProvider) { console.log(barProvider.data.message); }]);
希望这可以帮助。