【发布时间】:2019-07-29 14:56:07
【问题描述】:
我正在开发一个 Angular 库。我已经像这样设置了库:
ng new mylibrary --create-application falseng g library mylib
现在,我可以ng build 这个并创建一个使用它的应用程序,如下所示:
ng new myappnpm install ../mylibrary/dist/mylib
并将MylibModule 添加到我的app.module.ts 的imports
这很好用,默认情况下库有一个我可以使用的组件。库中还有一个依赖注入服务..也可以正常工作。
现在我想用 http 调用扩展我的库,所以我将 HttpClientModule 添加到我的库模块的导入中,并将 HttpClient 添加到我的服务的构造函数中。我使用ng build 重建库并在应用程序上重新运行npm install.. 并使用ng serve 运行,现在我的应用程序抛出:
StaticInjectorError(Platform: core)[HttpHandler -> Injector]:
NullInjectorError: No provider for Injector!
我想我必须以某种方式告诉库使用从应用程序注入的 HttpClient,但是如何?
【问题讨论】:
-
您是否已将 HttpClientModule 添加到主模块的导入列表中?
-
是的,没有帮助
-
您的库是否包含任何可注入服务?如果在您的应用程序中是这样,您需要在提供程序下添加这些。由于没有可查看的代码,很难看出问题出在哪里。
-
试过了。同样的错误。我刚刚添加了一个显示行为的存储库。
-
顺便说一句.. 该库有一个可注入服务,无需将其添加为提供程序即可正常工作.. 只要我不添加 HttpClientModule
标签: angular typescript