Я не могу найти правильное выражение для правильной оценки ngIf.Angular2 ngIf не обновлять DOM?
Я следил за простым Angularfire2 example here, и он позволяет мне войти в систему и выйти из системы правильно.
import { Component } from '@angular/core';
import { AngularFire } from 'angularfire2';
@Component({
selector: 'app-root',
template: `
<div> {{ (af.auth | async)?.uid }} </div>
<button (click)="login()">Login</button>
<button (click)="logout()">Logout</button>
`,
})
export class AppComponent {
constructor(public af: AngularFire) {
this.af.auth.subscribe(auth => console.log(auth));
}
login() {
this.af.auth.login();
}
logout() {
this.af.auth.logout();
}
}
Я хочу изменить код, чтобы отображать/скрыть правильные кнопки в зависимости от состояния входа. Я вижу на консоли, что auth переключается с нуля на объект и обратно, но DOM не обновляется.
Вот последняя попытка:
<div> {{ (af.auth | async)?.uid }} </div>
<button *ngIf="!(auth | async)" (click)="login()">Login</button>
<button *ngIf="auth | async" (click)="logout()">Logout</button>
Что я делаю неправильно? Как я могу правильно оценить это?
Вы не можете видеть ** ** Auth параметр функции подписываться из шаблона HTML. Вам лучше создать логическую переменную в классе, установить ее в подписчике и передать ее в предложении ngIf, чтобы скрыть/показать кнопки. –
IS AUTH возвращает логическое значение? Что говорит console.log для auth? – deek
@deek auth - это объект. В журнале отображается «null» или действительный объект со свойствами при нажатии кнопок. –