Ich habe Probleme, wenn Service in einen anderen Service injiziert wird. Ich habe einen ContactService erhalten, um Daten vom Server mit der Methode handleError zu erhalten. Ich habe einen AlertService bekommen, um einen Fehler von der handleError-Methode zu werfen. Ich habe contactService und AlertService bereits in meinem Core Module deklariert. Aber als ich alertService.submitNewMessage anrief, zeigte es, dass this.alertService nicht definiert ist. Bitte helfenProbleme beim Injekt-Service in anderem Service Angular 2
@Injectable()
export class AlertService {
private $currentMessages: BehaviorSubject<string> = new BehaviorSubject('');
public currentMessages: Observable<string> = this.$currentMessages.asObservable();
constructor() { }
submitNewMessage(msg: string): void {
this.$currentMessages.next(msg);
}
}
Und Kontakt Service
@Injectable()
export class ContactService {
private contactsUrl = 'http://localhost/customers';
constructor(
private http: Http,
private router: Router,
private alertService: AlertService
) { }
getContactsFromService(): Observable<SubmitCustomerHttp[]> {
return this.http.get(this.contactsUrl)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
return HttpHelper.extractData(res);
}
handleError(error: Response | any) {
let errMsg: string;
console.log('Receive error: ', error);
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
if (error.status === 500 || 400 || 404) {
window.alert(errMsg);
this.alertService.submitNewMessage(errMsg);
return errMsg;
}
} else {
errMsg = error.message ? error.message : error.toString();
console.log('Error Message: ', errMsg);
return null;
}
}
}
Mein Core Module
@NgModule({
imports: [
CommonModule,
HttpModule,
JsonpModule
],
declarations: [],
providers: [
AlertService,
ContactService,
]
})
export class CoreModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: CoreModule,
providers: [
AlertService,
ContactService,
]
};
}
}
wo ist der Code für Alert .submitNewMessage? – Sajeetharan
@Sajeetharan Sorry, mein Fehler, ich werde es beheben – TheRemjx
Sie Kontaktservice ist nicht mit @Injectable –