angular - 错误 : "Encountered undefined provider! Usually this means you have a circular dependencies"

标签 angular typescript

这是我在 Angular/TypeScript 应用程序中遇到的一个有点无用的错误。在有人改进错误信息之前,我们能做些什么呢?最有可能导致这种情况发生的情况是什么?

Uncaught Error: Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files.
    at Object.syntaxError 
    at eval     at Array.forEach (native) [<root>]
    at CompileMetadataResolver._getProvidersMetadata 
    at CompileMetadataResolver.getNgModuleMetadata 
    at CompileMetadataResolver.getNgModuleSummary 
    at eval 
...

最佳答案

很难从错误消息中判断是哪个提供商导致了这个问题。我设法调试它的方式如下:

  • 我进入了node_modules@angular\compiler\bundles\compiler.umd.js文件
  • 我找到了这样一行:“遇到未定义的提供程序!通常这意味着您有循环依赖关系。这可能是由于使用‘barrel’index.ts 文件造成的。”
  • 在我添加 console.log('type', type); 之前的一行,以便查看哪个文件是未定义的提供程序(您也可以在那里控制台记录其他相关变量)。
  • 在相关文件中,我找到了导致问题的“桶”导入,并将其替换为确切的文件路径导入。

关于angular - 错误 : "Encountered undefined provider! Usually this means you have a circular dependencies",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43008395/

相关文章:

angular - Angular 8 : predefined values as property in model

angular - 将服务器请求重定向到 React/Angular SPA 的/index.html

javascript - 当 URL 的格式为 : "component/#/?id=..." 时,如何构造和使用 Angular URL 参数

javascript - (点击)="foo()"在数据表中不起作用

javascript - Angular ng 内容 : how to use parents data as children input

typescript 将未知类型转换为接口(interface)类型

angular - 使用复选框删除多行

node.js - NestJS - Mongoose @InjectConnection 单元测试

angular - 如何制作与 DI 一起正确工作的类装饰器

angular - 如何在 Angular 2 应用程序中使用 typescript 显示基于其他下拉值的下拉值