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

在config()模块中注入依赖项-AngularJS

公良玺
2023-03-14
问题内容

当前在app.js中,我有以下路线:

var gm = angular.module('gm', ['gm.services','gm.directives','gm.filters','gm.controllers','ngSanitize']);

gm.config(['$routeProvider', 'Path', function($routeProvider, Path) {

    $routeProvider.when('/login', { 
        templateUrl: Path.view('application/authentication/login.html'), 
        controller: 'authController' 
    });

    $routeProvider.when('/dashboard', { 
        templateUrl: Path.view('application/dashboard/index.html'), 
        controller: 'dashboardController' 
    });

    $routeProvider.otherwise({ 
        redirectTo: '/login'
    });

}]);

如您所见,我正在尝试注入Path依赖项。尽管我收到一条错误消息,说找不到该提供程序。我认为这是因为配置模块提供程序首先执行。以下是“
services.js”中我的路径提供程序定义

gm.factory("Path", function() {
  return {
    view: function(path) {
      return 'app/views/' + path; 
    },
    css: function(path) {
      return 'app/views/' + path; 
    },
    font: function(path) {
      return 'app/views/' + path; 
    },
    img: function(path) {
      return 'app/views/' + path; 
    },
    js: function(path) {
      return 'app/views/' + path; 
    },
    vendor: function(path) {
      return 'app/views/' + path; 
    },
    base: function(path) {
      return '/' + path; 
    }
  }
});

我怎样才能将此提供程序注入配置模块?


问题答案:

.config中,只能使用提供程序(例如$routeProvider)。在.run你只能使用服务(如实例$route)。您有一家工厂,而不是供应商。请参阅具有以下三种创建方式的代码段:服务,工厂和提供者。
他们还在有角度的文档https://docs.angularjs.org/guide/services中提到了这一点。



 类似资料:
  • 让我们创建一个名为的新模块,并在那里定义CounterService。 app/shared/shared.module.ts 现在我们将引入 SharedModule 到AppModule 和中。 app/lazy/lazy.module.ts 使用此配置,两个模块的组件都可以访问CounterService。 我们将以完全相同的方式在EagerComponent和LazyComponent中使

  • 问题内容: 我试图了解如何使用Angularjs。看起来不错的框架,但是我在DI方面遇到了一些问题… 如何在模块的“运行”方法中注入依赖项?我的意思是我能够做到,但是仅当我具有与“运行”参数名称相同名称的服务/工厂/值时,它才有效。我构建了一个简单的应用程序来说明我的意思: 您可能会问我为什么需要它:)但是,在我看来,首先要有有意义的名称空间来组织代码。它还将最小化名称冲突,最后,当最小化JS时,

  • 问题内容: 在我的NestJS应用程序中- 我有TypeScript类,这些类中已经注入了其他类和值。唯一的是,我要导入带有语句的TypeScript类,并使用DI系统注入它们。有什么方法可以删除导入语句并让DI系统处理它? 问题答案: TL; DR ->类参考 DI->类实例化 可以通过字符串标记进行匹配,但最好使用类引用。 封装形式 依赖项注入系统主要处理类的实例化。这很好,因为您不必关心要注

  • 我正在从事一个Spring项目,其中单元测试有自己的配置,称为UnitTestConfig,它有几个定义类似于主应用程序文件的bean(几乎是一个副本)。保持结构不变,我正在对主应用程序服务器代码进行一些更改,但是这会在UnitTestConfig中引发错误,因为它没有注入所需的bean。这些bean没有在单元测试中使用,有没有办法阻止UnitTestConfig尝试注入这些bean?这是一个巨大

  • 我正在使用Spring3中的查找方法注入将原型bean注入到单例bean中,如这里的Spring文档中所述。在我的原型bean中,我对ApplicationContext.xml中声明的另一个bean有依赖关系。查找方法注入似乎工作正常,因为我的原型bean被注入到我的单例bean中,然而,原型的依赖项根本没有被注入。当通过查找方法返回原型时,依赖关系是否可以以正常的方式注入到原型bean中?如果

  • 唯一的问题是注入不同模块中的bean。这怎么能修好呢?