У меня есть приложение 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(
);
}
};
}
Проблема возникает, когда я вызываю метод getLoggedInUser () этой службы из клиентского приложения, которое установило библиотеку через «npm install».
Кажется что зависимость не выполняется для службы в пользовательской библиотеке, которая, как я думал, произойдет автоматически.
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)
Есть идеи?
Спасибо