Angular 7 : Injected service is undefined
You should always provide your service in the root injector unless there is a case where you want the service to be available only if the consumer imports a particular @NgModule.
try to add your service you want to inject in providers : [ ]
in your core.module
import { NgModule, LOCALE_ID } from '@angular/core';
import { DatePipe, registerLocaleData } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { Title } from '@angular/platform-browser';
import locale from '@angular/common/locales/en';
@NgModule({
imports: [HttpClientModule],
exports: [],
declarations: [],
providers: [
AccountService,
Title,
{
provide: LOCALE_ID,
useValue: 'en'
},
DatePipe
]
})
export class CoreModule {
constructor() {
registerLocaleData(locale);
}
}
and in your AccountService replace @Injectable({ providedIn: 'root' })
with @Injectable()
@Injectable()
export class AccountService {
private userIdentity: any;
private authenticated = false;
private authenticationState = new Subject<any>();
constructor(private languageService: JhiLanguageService, private sessionStorage: SessionStorageService, private http: HttpClient) {}
The same thing happened to me, the solution was the one mentioned by the user span
-> Passing arrow function instead of regular function in the callback. Arrow functions don't have its own this.
Difference between regular functions and arrow functions here