在离子项目中使用 angular 库时,必须从注入上下文调用 inject()
inject() must be called from an injection context when using angular library in ionic project
我目前有一个项目,其中有一个 angular 工作区,我在其中创建了一个 angular 网络应用程序。现在我还需要一个应用程序并创建了一个 angular ionic 应用程序。我想重用我现有的使用 AngularFireauth 和 AngularFirestore 的身份验证服务,因此我创建了一个库并提取了该服务。在 angular 网络应用程序中使用库中的服务时,一切正常。但是尝试从离子应用程序在页面中注入服务我得到错误 inject() 必须从注入上下文中调用。将服务从库移动到离子应用程序并从那里使用它时它可以工作。
离子 v.5.0.5
Angular v.9.0.6
也许有人有想法。
感谢您的帮助!
刚问完这个问题,我就在 post 的底部找到了答案,建议添加
"paths": { "@angular/*": [ "./node_modules/@angular/*" ] }
到我试图注入服务的应用程序的 compilerOptions 下的 tsconfig.app.json。
就我而言,有两种解决方案对我有用:
在您的应用程序中,将 projects.$name.architect.build.options
preserveSymlinks: true
添加到 angular.json
文件中 projects.$name.architect.build.options
。
@Patrick Solution(不推荐):
"paths": { "@angular/*": [ "./node_modules/@angular/*" ] }
最可能的解释是@angular/core 的两个不同副本被捆绑到该应用程序。:
我目前有一个项目,其中有一个 angular 工作区,我在其中创建了一个 angular 网络应用程序。现在我还需要一个应用程序并创建了一个 angular ionic 应用程序。我想重用我现有的使用 AngularFireauth 和 AngularFirestore 的身份验证服务,因此我创建了一个库并提取了该服务。在 angular 网络应用程序中使用库中的服务时,一切正常。但是尝试从离子应用程序在页面中注入服务我得到错误 inject() 必须从注入上下文中调用。将服务从库移动到离子应用程序并从那里使用它时它可以工作。
离子 v.5.0.5
Angular v.9.0.6
也许有人有想法。
感谢您的帮助!
刚问完这个问题,我就在 post 的底部找到了答案,建议添加
"paths": { "@angular/*": [ "./node_modules/@angular/*" ] }
到我试图注入服务的应用程序的 compilerOptions 下的 tsconfig.app.json。
就我而言,有两种解决方案对我有用:
在您的应用程序中,将
projects.$name.architect.build.options
preserveSymlinks: true
添加到angular.json
文件中projects.$name.architect.build.options
。@Patrick Solution(不推荐):
"paths": { "@angular/*": [ "./node_modules/@angular/*" ] }
最可能的解释是@angular/core 的两个不同副本被捆绑到该应用程序。: