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美分;)=>你必须注入常数。啊,我明白了。这是非常有用的,尤其是第二种方式。