Я новичок в программировании, а angular у меня есть служба аутентификации и модуль аутентификации, в котором есть компонент входа, регистрации и сброса пароля. Я пытаюсь использовать службу предупреждений в своей службе аутентификации, однако она не отображается, когда я запускаю ее из службы. Вот мой код LOGIN HTML
<div class="login-page" [@routerTransition]>
<ngx-alerts></ngx-alerts>
<div class="row justify-content-md-center">...
LOGIN.TS
import { Component, OnInit, ViewChild } from '@angular/core';
import { NgForm } from '@angular/forms';
import {AlertService} from 'ngx-alerts';
import { Globals } from '../../core/Globals';
import { AuthService } from '../auth.service';
import { LoginUser } from '../../core/interface';
import { routerTransition } from '../../core/router.animations';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss'],
animations: [routerTransition()]
})
export class LoginComponent implements OnInit {
@ViewChild('f', {static: true}) loginForm: NgForm;
user: LoginUser;
constructor(
private auth: AuthService,
private globals: Globals,
private alertService: AlertService
) { }
ngOnInit() {
}
onLogin() {
if (!this.loginForm.value.email) {
this.alertService.warning(this.globals.messages.err_enter_email);
return false;
}
if (!this.loginForm.value.password) {
this.alertService.warning(this.globals.messages.err_enter_password);
return false;
}
this.user = {
email : this.loginForm.value.email,
password : this.loginForm.value.password
};
if (this.loginForm.valid) {
console.log(this.loginForm);
console.log(this.user);
this.auth.login(this.user);
}
}
}
Auth Service
import { ErrorHandlingService } from './../core/services/error-handling.service';
import { LoginUser, RegisterUser, Token } from './../core/interface';
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Globals } from '../core/Globals';
import { Router } from '@angular/router';
import {AlertService} from 'ngx-alerts';
@Injectable(
{providedIn: 'root'}
)
export class AuthService {
constructor(
private http: HttpClient,
private globals: Globals,
private errorHandling: ErrorHandlingService,
private router: Router,
private alertService: AlertService) {
}
public login(user: LoginUser) {
localStorage.clear();
this.http.post(this.globals.api + `/users/login`, user).subscribe(
(res: Token) => {
const data = res as Token;
this.saveToken(data);
console.log(res);
console.log(this.globals.messages.general_success);
this.alertService.warning(this.globals.messages.general_success);
// this.router.navigate(['/layout']);
},
(error) => {
this.errorHandling.errorMessage(error.status);
console.log(error);
}
);
}
Error Service
import { Globals } from './../Globals';
import { Injectable } from '@angular/core';
import { AlertService } from 'ngx-alerts';
@Injectable(
{providedIn: 'root'}
)
export class ErrorHandlingService {
constructor(private globals: Globals, private alertService: AlertService) {
}
errorMessage(errorCode: number) {
switch (errorCode) {
case 0: {
console.log(this.globals.messages.err_server);
this.alertService.danger(this.globals.messages.err_server);
break;
}
case 401: {
console.log(this.globals.messages.register_error);
this.alertService.danger(this.globals.messages.register_erro);
break;
}
default: {
console.log(this.globals.messages.general_error);
break;
}
}
}
}
Предупреждения, которые я запускаю в компоненте, работают, однако, когда я пытаюсь вызвать их из службы аутентификации или службы ошибок, они не работают