尝试为模块设置一些帮助器值。尝试过服务和价值并没有帮助:
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'
});
}]);
我做错了什么?
答案 0 :(得分:42)
问题是您正在尝试在AngularJS模块的配置块中注入值对象helpers
,这是不允许的。您只能在配置块中注入常量和提供程序。
AngularJS documentation(部分:“模块加载和依赖性”)提供了对此的见解:
模块是配置和运行块的集合 在引导过程中应用于应用程序。在其中 最简单的形式模块由两种块的集合组成:
配置块 - 在提供商注册期间执行 和配置阶段。只能注入提供者和常量 到配置块。这是为了防止意外实例化 在完全配置之前的服务。
运行块 - 获取 在创建注射器后执行并用于启动注射器 应用。只有实例和常量才能注入运行 块。这是为了防止进一步的系统配置 申请运行时间。
答案 1 :(得分:17)
您可以使用.value
代替.constant
。然后,您可以在.config
部分中使用您的服务。
答案 2 :(得分:1)
您的帮助方法名为templatePath
,您在.config
内将其称为getTemplatePath
。不应该是:
when('/', {
templateUrl: helpers.templatePath('dashboard'),
controller: DashboardController
})