Как я могу обновить компонент заголовка, когда пользователь входит в систему свои учетные данные и проверяется. Я хочу что-то вроде того, когда пользователь получает подтверждение, что это автоматически изменяет текст входа на выход из системы, и если пользователь нажимает кнопку выхода из системы, тогда он должен измениться на повторный вход. В настоящее время он изменяет текст, когда я обновляю угловое приложение.
Вот мой заголовок HTML & TS Code:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})
export class HeaderComponent implements OnInit {
date = Date.now();
userName;
constructor(private router: Router) {
}
ngOnInit() {
this.userName = localStorage.getItem('user');
}
signOut(){
localStorage.removeItem('user');
this.router.navigate(['/']);
}
}
<li *ngIf="!userName"><a routerLink="/signin">Sign In</a></li>
<li *ngIf="userName"><a (click)="signOut()">Logout</a></li>
Коды компонентов входа:
signIn(){
let user = this.signin.getRawValue();
this.signinService.signin(user)
.subscribe(res=>{
this.resData = res;
console.log(res);
if(this.resData.Error==0){
this.errMsg = this.resData.Message;
localStorage.setItem('user', this.resData.uid);
this.router.navigate(['/']);
}
else{}
})
}
Службы входа:
import { Injectable } from '@angular/core';
import { HttpClient} from '@angular/common/http';
import { url } from '../manual';
@Injectable({
providedIn: 'root'
})
export class SigninService {
constructor(private http: HttpClient) { }
signin(user){
return this.http.post(`${url}signIn`, user)
}
}
А вот код API внутреннего интерфейса:
app.post('/api/signIn', function(req, res){
let email = req.body.email;
let password = sha1(req.body.password);
signupModel.find({'email': email,'password': password,}, 'name email password', function(err, data){
if(err){
res.json({'Error': 1, 'Message': 'Something went wrong'});
}
else if(data.length==0){
res.json({'Error': 1, 'Message': 'Email or password is not correct'});
}
else{
res.json({'Error': 0, 'Message': 'Successfully Logged in','uid': data[0].name});
}
});
})