角度材料2ライブラリとFirebaseライブラリを併用すると奇妙な問題が発生します。角度2の素材2 Firebaseイベントリスナー内で条件セットを設定したときにスナックバーが失敗する
import {Component, ChangeDetectorRef} from '@angular/core';
import {MdSnackBar} from '@angular/material';
declare const firebase: any; // declare the firebase global variable so Typescipt doesn't complain
@Component({
selector: 'app-root',
template: `
<button *ngIf="test" (click)="failedAttempt()">Click me</button>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent {
test = false;
constructor(private ref: ChangeDetectorRef, private snackBar: MdSnackBar) {
firebase.auth().onAuthStateChanged((user) => {
this.test = true;
this.ref.detectChanges();
});
}
failedAttempt() {
this.snackBar.open('It didn\'t quite work!', 'Try Again', {duration: 2000});
}
私はボタンをクリックすると、スナックバーが表示されない:ここでは
コードがあります。エラーはスローされず、オブジェクトを検査することによってわかることから、スナークバーはそれが表示されていると思います。
test
のデフォルト値はtrue
です。
は、私が追加した場合:
はsetInterval(()=> this.ref.detectChanges(), 1000)
firebase.auth()...
イベントリスナーの前に、それは動作します - しかし、私は明らかに常に動作していることを望んでいません。
誰でも手伝ってもらえますか?