AngularJS依赖注入module.config中的值

And*_*rin 29 angularjs

尝试为模块设置一些帮助器值.尝试服务和价值,但没有帮助:

var finance = angular.module('finance', ['finance.services'])
    .value("helpers", {
        templatePath: function (name) {
            return '/areas/scripts/finance/templates/' + name + '/index.html';
        }
    })
    .config(['$routeProvider', 'helpers', function ($routeProvider, helpers) {
    $routeProvider.
        when('/', {
            templateUrl: helpers.getTemplatePath('dashboard'),
            controller: DashboardController
        })            
        .when('/people', {
            templateUrl: '/areas/scripts/app/people/index.html',
            controller: PeopleController
        })
        .otherwise({
            redirectTo: '/dashboard'
        });
}]);
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

pko*_*rce 42

问题是您正在尝试helpers在AngularJS模块的配置块中注入值对象,这是不允许的.您只能在配置块中注入常量和提供程序.

AngularJS 文档(部分:"模块加载和依赖关系")提供了对此的见解:

模块是配置和运行块的集合,它们在引导过程中应用于应用程序.在最简单的形式中,模块由两种块的集合组成:

配置块 - 在提供程序注册和配置阶段执行.只有提供程序和常量才能注入配置块.这是为了防止在完全配置服务之前意外实例化服务.

运行块 - 在创建注入器后执行并用于启动应用程序.只有实例和常量才能注入运行块.这是为了防止在应用程序运行时进一步进行系统配置.

  • 其实我已经读过了,但我也太傻了,不记得了.谢谢. (2认同)

fed*_*lov 17

而不是.value你可以使用.constant.然后您可以.config部分使用您的服务.

  • fedor.belov说,通过使用.constant设法使其在1.0.6中工作 (2认同)