Javascript 直接从角度模块访问常数
我有以下几行:Javascript 直接从角度模块访问常数,javascript,angularjs,Javascript,Angularjs,我有以下几行: var app = angular.module('app', []); app.constant("const", { foo: "bar", test: "123" }); 我现在想直接从模块app访问constant中的信息。像这样的事情不起作用: console.log(app.constant.const.foo); 我知道您可以将常量注入控制器、服务等并访问信息,但出于我的目的,我希望直接从模块中访问它们 访问已注册的常量的唯一方法是将其注入控制器/服
var app = angular.module('app', []);
app.constant("const", {
foo: "bar",
test: "123"
});
我现在想直接从模块app
访问constant
中的信息。像这样的事情不起作用:
console.log(app.constant.const.foo);
我知道您可以将常量注入控制器、服务等并访问信息,但出于我的目的,我希望直接从模块中访问它们
访问已注册的
常量的唯一方法是将其注入控制器/服务/etc吗 如果您确实想直接访问常量,可以执行以下操作:
var app = angular.module('app', []);
var app.constants = {foo: "bar", test: "123"};
app.constant("const", app.constants);
console.log(app.constants.foo);
但是,我看不到真正的好处;) 假设您希望在angularjs环境之外访问const
然后您必须从喷油器
中检索喷油器,有两种方法可以获取喷油器:
获取正在运行的angularjs应用程序的当前注入器,如下所示:
var injector = angular.element(document).injector(); // assuming `ng-app` is on the document
injector.get('const');
从现有模块创建新喷油器:
var injector = angular.injector(['ng', 'app']); // note the 'ng' module is required this way
injector.get('const');
示例Plunker:
希望这能有所帮助。看来这是唯一的注射方法,耶,这是我不清楚的过错。我知道,我可以像您所说明的那样,将常量信息附加到模块对象本身上。我想知道的是,您是否可以在不使用以下命令的情况下访问信息:var app.constants={foo:“bar”,test:“123”}代码>第一行。我在最上面的评论上花了2美分;)=>你必须注入常数。啊,我明白了。这是非常有用的,尤其是第二种方式。