【问题标题】:Can't resolve all parameters for MyComponent无法解析 MyComponent 的所有参数
【发布时间】:2018-06-05 17:53:42
【问题描述】:

我正在使用 Angular 进行开发,但发现了一个奇怪的问题:

未捕获的错误:无法解析 MyComponent 的所有参数:([object 对象], ?, ?, [对象对象], [对象对象], [对象对象])。

值得一提的是,显示为“?”的依赖项只是我提供的服务,其他是 Angular 对象或第三方,它发生在我的整个所有项目中,只发生在我自己的依赖项中。

我已经阅读了我在 google 中找到的几乎所有内容,我已经查看了有关循环依赖和桶导入的已知问题。

你应该知道的其他事情是:

  • 不起作用的依赖项托管在他们自己的项目中,并发布在我的本地/自己/私有 npm 存储库中。
  • 我会使用 npc. 通过 gulp 发布这些依赖项
  • 我没有使用 aot。
  • @angular/cli: "1.7.4"
  • @angular: "^5.2.6"

我真的怀疑元数据,但我没有在 node_modules/myDependency/ 中找到任何东西,这给了我有关元数据损坏或丢失的线索。

【问题讨论】:

  • 我们可以看看你的代码吗?
  • 如果您投反对票,请给出理由。我看不出这个问题有什么负面的。他显然试图修复它,但不能。
  • 抱歉,我很想给你看代码,但我不能,因为它是我工作所在公司的财产
  • 我只是想知道其他人是否遇到过同样的问题。我应该使用其他编译器而不是ngc吗?只有我已经发布的依赖项失败的事实让我怀疑元数据

标签: angular angular-cli


【解决方案1】:

未捕获的错误:无法解析 MyComponent 的所有参数:([object Object], ?, ?, [object Object], [object Object], [object Object])。

? 定义的服务必须添加到提供这些服务的NgModuleproviders 部分。

【讨论】:

  • 他们在供应商中,我保证。另一件可以帮助你的事情是:当我用@Inject(MyClass) myClass: MyClass 装饰我的依赖项时,它可以工作,但我不想用@Inject 标记我使用 MyClass 的每个地方,这在我看来很脏解决方法,我很确定还有其他问题,但我无法弄清楚它是什么
  • @AbnerJuarez 您是从同一个应用程序中注入服务,还是从外部库(例如,像 Material Angular 中的模块)注入服务?
  • 让我给你更多的上下文。我有很多用 Lerna 管理的小仓库,例如,我有一个名为 @byte/ng-security 的仓库,我有一个名为 SecurityService 的服务。然后,我有另一个名为 @byte/ng-components 的 repo,其中我有另一个名为 ClientSearchService 的服务,该服务使用来自 @byte/ng-security 的 SecurityService。在@byte/ng-components 我有一个名为 ClientSearchModule 的模块,我有 SecurityService 和 ClientSearchService 作为装饰器中的提供者。当我在可运行项目中导入 ClientSearchModule 时发生错误。
  • 您可能需要让 ClientSearchModule 导出它导入的所有模块。以便将这些模块转发到导入它的任何模块。
  • 我会尝试一下,但我有怀疑,因为就像我要向您提到的 @Inject 的情况一样,它只适用于我进行更改的地方,并且可能在另一个地方失败地点
猜你喜欢
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2017-09-26
  • 2018-03-24
  • 1970-01-01
  • 2016-11-27
  • 2018-05-16
  • 2017-11-04
相关资源
最近更新 更多