Я до сих пор довольно новичок в angular2-meteor и пробовал простой пользовательский компонент кнопок входа. Я хочу отображать кнопки «Зарегистрироваться» и «Вход», когда пользователь не вошел в систему и не отобразил кнопку «Выход» при входе пользователя в систему. Казалось, что это должно быть довольно просто, но это не работает, поскольку я ожидаю ,Angular2-Meteor * ngIf с Meteor.userId() не обновляется реактивно
Вот мой компонент HTML:
<div *ngIf="!isLoggedIn()">
<button class="btn btn-outline-primary btn-sm" (click)="goToLoginForm()">Log In</button>
<button class="btn btn-success btn-sm">Sign Up</button>
</div>
<div *ngIf="isLoggedIn()">
<button class="btn btn-outline-danger btn-sm" (click)="logout()">Log Out</button>
</div>
А вот мой машинопись:
import {Component} from "@angular/core";
import template from "./login-buttons.component.html";
import {Router} from "@angular/router";
@Component({
selector: "login-buttons",
template
})
export class LoginButtonsComponent {
constructor(private router: Router) {}
isLoggedIn(): boolean {
return !!Meteor.user();
}
goToLoginForm(): void {
this.router.navigateByUrl('/login');
}
logout(): void {
Meteor.logout((error) => {
if (error) {
console.log(error);
} else {
this.router.navigateByUrl("/");
}
});
}
}
Я уверен, что я что-то на самом деле просто не хватает, но это ускользает от меня. Вся помощь приветствуется.
дайте мне знать, если это решение работает для вас или нет :) –