Объект localStorage хранит данные без срока годности. Данные не будут удалены при закрытии браузера и будут доступны на следующий день, неделю или год, а объект sessionStorage сохраняет данные только для одного сеанса (данные удаляются, когда вкладка браузера закрыто), поэтому вы не можете проверить, правильно ли выполнялся ваш компонент в первый раз, и значение переменной не очистится при следующем запуске вашего компонента. Я думаю, что лучше использовать глобальный сервис, потому что с каждым refre sh ваша переменная будет установлена. Ваш сервис может быть примерно таким:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class GlobalSettingsService {
private _yourComponentNameLoadedAlready:boolean;
constructor() { }
public set YourComponentNameLoadedAlready(v : boolean) {
this._yourComponentNameLoadedAlready= v;
}
public get YourComponentNameLoadedAlready() : boolean {
return this._yourComponentNameLoadedAlready;
}
}
// Ваш компонент
constructor (private globalSettingsService:GlobalSettingsService){
}
ngOnInit() {
if (this.globalSettingsService.YourComponentNameLoadedAlready) {
//This component has already been executed
} else {
//This is the first time that this component executes
this.globalSettingsService.YourComponentNameLoadedAlready=true;
}
}