![](/img/trans.png)
[英]inject() must be called from an injection context when using angular library in ionic project
[英]Angular custom library has HTTP dependency - inject() must be called from an injection context
我有一个 Angular 8 应用程序,它使用我创建的自定义库中的服务。
服务进行 HTTP 调用,因此它在其构造函数中具有对 HttpClient 实例的依赖关系,如下所示:
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { User } from '../../models/user.model';
import { GetLoggedInUserInfo } from '../../models/get-logged-in-user-info';
@Injectable({
providedIn: 'root',
})
export class AuthService {
constructor(private http: HttpClient) {}
getLoggedInUser = ({
apiUrl,
apiContextRoot,
}: GetLoggedInUserInfo): Observable<User> => {
const url = `${apiUrl}${apiContextRoot}/login`;
return this.http.get<User>(url).pipe(
);
}
};
}
当我从通过“npm install”自定义安装库的客户端应用程序调用此服务的 getLoggedInUser() 方法时,就会出现问题。
自定义库中的服务似乎没有满足依赖关系,我认为这会自动发生。
main.ts:12 Error: inject() must be called from an injection context
at injectInjectorOnly (core.js:728)
at ɵɵinject (core.js:744)
at AuthService_Factory (gulfstream-common.js:493)
at _callFactory (core.js:30485)
at _createProviderInstance (core.js:30428)
at resolveNgModuleDep (core.js:30387)
at NgModuleRef_.get (core.js:31577)
at resolveDep (core.js:32142)
at createClass (core.js:31988)
at createDirectiveInstance (core.js:31806)
有任何想法吗?
谢谢
@Andrei 提供了链接 github.com/angular/angular/issues/25813,这有助于解决问题。
我更新了使用该库的应用程序的 angular.json 文件,并在两个位置包含“preserveSymlinks”:true :
在“建筑师”->“构建”->“选项”下
对于“架构师”->“构建”->“配置”下的每个配置
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.