@kikosko

Как запомнить значение переменной после перезагрузки страницы?

Я хочу запоминать значение переменной loggedIn после перезагрузки страницы, потому что от ее значения, зависит вызов соответствующей функции и стиля кнопки в appComponent.html Подскажите пожалуйста, как ее это реализовать?

AppComponent.html

<li class="nav-item">
                <a class="btn btn-outline-success"
                   [class.btn-outline-success]="!this.loggedInService.loggedIn"
                   [class.btn-outline-danger]="this.loggedInService.loggedIn"
                   (click)="this.loggedInService.loggedIn ? logout() : logIn()">
                    {{this.loggedInService.loggedIn? 'Exit' : 'Enter'}}
                </a>
            </li>


AppComponent.ts
export class AppComponent implements OnInit {
    constructor(private loggedInService: LoggedinService,
                private router: Router) {
    }

    ngOnInit() {
    }

    logIn(): void {
        this.loggedInService.login();
        if (this.loggedInService.loggedIn) {
            let redirect = this.loggedInService.redirectUrl ? this.loggedInService.redirectUrl :
                '/gallery';
            this.router.navigate([redirect]);
        }
    }

    logout(): void {
        this.loggedInService.logout();
        this.router.navigate(['/']);
    }
}


LoggedinService :
export class LoggedinService implements OnInit {
    redirectUrl: string;
    loggedIn: boolean = false;
    constructor() {}

    ngOnInit(): void  {}

    login(): boolean {
        localStorage.setItem('login', 'true');
        return this.loggedIn = true;
    }

    logout(): boolean {
        localStorage.removeItem('login');
        return this.loggedIn = false;
    }
}
  • Вопрос задан
  • 795 просмотров
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
localStorage.setItem("isLoggedIn", loggedIn)

инициализация переменной
loggedIn: boolean = (localStorage.getItem("isLoggedIn") === 'true') || false


но у вас и так это есть
в чем сложность то?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Ответ сильно зависит от того, зачем это нужно. Как вариант - записать в cookie.
Однако, допустим, у юзера открыто несколько окон с этой страницей - тогда непонятно, как различать эти переменные от разных страниц.

Есть ещё разные варианты перезагрузки страницы - например, переход куда-то на другую страницу (в т.ч. на другой сайт) и возврат обратно.

Это не ответ, а только указание на возможные сложности.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы