The same code worked for me in angular 8 but now it's giving me this error. "The class 'BaseService' cannot be created via dependency injection, as it does not have an Angular decorator. This will result in an error at runtime.
Either add the @Injectable() decorator to 'BaseService', or configure a different provider (such as a provider with 'useFactory')."
I'm only trying to achieve simple inheritence here.
1) BaseService.ts (parent class)
import { environment } from 'src/environments/environment';
import { HttpHeaders } from '@angular/common/http';
export class BaseService {
url
constructor(postfixUrl) {
this.url = environment.backendUrl + postfixUrl
}
setUpHeaders() {
return {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
}
}
}
2) AuthService.ts (child class)
import { Injectable } from "@angular/core";
import {HttpClient} from '@angular/common/http'
import { BaseService } from './base.service';
@Injectable({
providedIn: 'root'
})
export class AuthService extends BaseService {
url
constructor(private http: HttpClient) {
super('auth')
}
register(user) {
return this.http.post(this.url, user, this.setUpHeaders())
}
}
3) auth.module.ts
@NgModule({
declarations: [
AuthComponent,
LoginComponent,
RegisterComponent
],
imports: [
CommonModule,
AuthRoutingModule,
HttpClientModule,
FormsModule,
ReactiveFormsModule
],
providers: [AuthService, BaseService]
})
export class AuthModule { }