Без обид, но вы упускаете много основ в JS / Angular, как я понял из вашего вопроса, вам все равно нужно посмотреть некоторые уроки о JS.
, касающиеся Ваш вопрос:
loggedIn: boolean;
login() {
if (this.loginForm.valid) {
this.user.login_user(JSON.stringify(this.loginForm.value))
.subscribe(
data => {
this.loggedIn = true;
//will navigate to home
this.router.navigate(['']);
}, error => console.log(error));
} else {
console.log('Invalid form');
}
}
и для изменения текста кнопки или любого другого подобного задания, для которого вам не нужно когда-либо обновлять sh страницу, используя window.location.reload();
, к которой вы можете обратиться переменную status
в вашем компоненте и измените ее значение после успешного входа в систему, а в вашем шаблоне отобразите значение в соответствии с этим шаблоном status
variable
. html
<button (click)="login">{{loggedIn ? 'logout' : 'login'}}</button>
PS Если вы хотите прочитать это значение переменной loggedIn в других компонентах, вам придется изменить ее тип на EventEmitter и включить его в службу Singelton, добавить в него значение sh после зарегистрированного успеха и подписаться на него. откуда угодно.