直接从Angular模块访问常量

Tra*_*zeK 3 javascript angularjs

我有以下几行:

var app = angular.module('app', []);
app.constant("const", {
   foo: "bar",
   test: "123"
});
Run Code Online (Sandbox Code Playgroud)

我现在想constant直接从模块中访问信息app.像这样的东西不起作用:

console.log(app.constant.const.foo);
Run Code Online (Sandbox Code Playgroud)

我知道你可以将常量注入控制器,服务等并访问信息,但出于我的目的,我想直接从模块中访问它们.

访问已注册的唯一方法constant是将其注入控制器/服务/等?

run*_*arm 10

假设,不知何故,您想要访问constangularjs环境的外部.

然后你必须从a中检索它injector,并且有两种方法可以获得注入器:

  1. 获取正在运行的angularjs应用程序的当前注入器,如下所示:

    var injector = angular.element(document).injector(); // assuming `ng-app` is on the document
    injector.get('const');
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从现有模块创建新的注入器:

    var injector = angular.injector(['ng', 'app']); // note the 'ng' module is required this way
    injector.get('const');
    
    Run Code Online (Sandbox Code Playgroud)

示例Plunker: http ://plnkr.co/edit/ld7LLlr94N7PiqnxY5zH

希望这可以帮助.