当前位置: 首页 > 面试题库 >

AngularJS依赖注入module.config内部的值

许毅
2023-03-14
问题内容

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

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'
        });
}]);

我做错了什么?


问题答案:

问题是您试图将值对象插入helpersAngularJS模块的config块中,并且不允许这样做。您只能在config块中注入常量和提供程序。

AngularJS
文档(部分:“模块加载和依赖关系”)提供了有关以下方面的见解:

模块是配置和运行块的集合,这些块在引导过程中应用于应用程序。以最简单的形式,该模块包含两种块的集合:

配置块 -在提供者注册和配置阶段执行。只有提供者和常量可以注入配置块中。这是为了防止在服务完全配置之前意外实例化服务。

运行块 -创建注射器后执行,并用于启动应用程序。只能将实例和常量注入运行块中。这是为了防止在应用程序运行期间进行进一步的系统配置。



 类似资料:
  • 主要内容:什么是依赖注入,value,factory,provider,constant,实例,AngularJS 实例 - factory,AngularJS 实例 - provider什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。 该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦

  • 问题内容: 我想知道接下来的两行之间是否有区别,为什么要使用其中之一(这两行按预期工作) 我是从AngularJS官方教程中获得的,我知道有关于此修改的解释,但我不理解它…… http://docs.angularjs.org/tutorial/step_05 提前致谢! 问题答案: 如果缩小第一行,则会得到: 依赖注入将无法再工作,因为角度不知道什么和有。比较一下以缩小第二个版本: 该函数的参数

  • 问题内容: -在角度,我们可以注入到功能 我想将我的服务注入其中 我确定服务定义正确,但是当我注入 它仍然说。 你知道为什么吗? 问题答案: 在“ 模块”页面的“模块加载和依赖项”部分: 配置块 -在提供者注册和配置阶段执行。只有提供者和常量可以注入配置块中。这是为了防止在服务完全配置之前意外实例化服务。 运行块 -创建注射器后执行,并用于启动应用程序。只能将实例和常量注入运行块中。这是为了防止在

  • 问题内容: 我想使用适当的依赖项注入来注入对象的字段。我尝试了很多不同的尝试注入等失败的组合。 问题答案: 解析是路由的属性,而不是控制器的属性。控制器将注入在路由级别上定义的依赖项,而无需在控制器上指定解析属性。 以您的一个示例(转换为JavaScript)为例,您将像往常一样定义控制器,即: 然后是路线上的resolve属性: 如果您想使用路由的resolve部分来减少代码,则需要使用数组样式

  • 问题内容: 我做错了什么? 根据文件,我应该能够注入到......但我得到一个错误- “未知供应商” http://jsfiddle.net/g26n3/ 实际上,我在这里有三个问题… 1)如何注入模块的配置。 2)如何向模块配置注入相同的提供程序()。 3)如果我将相同的提供程序注入到两个模块的配置中,它将是相同的提供程序实例,还是两个不同的实例? 谢谢! 问题答案: 您需要添加“ Provid

  • 我正在通过添加CDI重构旧模块。 我以 和 为了进行测试,我创建了一个文件: 为了测试它,我正在做这个博客中显示的 和 现在,当我试图测试逻辑时,我做到了 当我运行它时,两个测试属性都是inject,但是我得到了NPE,因为实例中的属性没有被赋值。 为什么Weld不能识别中的属性? JDK 7,焊接2.2.10,Junit 4.12 更新:发布问题后,开始尝试一个更简单、全新的项目(只有两个接口和