2017-06-20 20 views
0

私は角度の付いたアプリを持っています。正常にログインした後にメニューが表示されます。
メニューを更新した後にメニューが消える。角度

だから私は、私はapp.component

内のメニューを置くGlobalEventsManager

@Injectable() 
export class GlobalEventsManager { 

    private _showNavBar: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null); 
    public showNavBarEmitter: Observable<boolean> = this._showNavBar.asObservable(); 

    constructor() {} 

    showNavBar(ifShow: boolean) { 
     this._showNavBar.next(ifShow); 
    } 

} 

そして、メニューコンポーネントで

this.globalEventsManager.showNavBarEmitter.subscribe((mode)=>{ 
      if (mode !== null) { 
       this.showNavBar = mode; 
      } 
     }); 

とログインで

this.globalEventsManager.showNavBar(true); 
    this.router_.navigate(['welcome']); 

を持っています

だから、メニューの操作は素晴らしいですが、更新後のページメニューが消えて、コンソールログにはconsole.log(mode)が表示されます。

だから、どのように私は、ページの更新後_showNavBar値が再びnullに設定されていることが普通のことだ。この問題と感謝

+0

あなたのメニューはどこに置かれていますか、コンポーネント内にあるのか、それともルータの外に出ていますか? –

+0

@ThienHoang iは質問を編集します – Akram

答えて

0

を解決することができます。これは、GlobalEventsManager全体が再度実行されたためです。それを解決するには、ユーザーがログインしていないか(コンストラクタの内部例えばGlobalEventsManagerで、その後_showNavBar値をもう一度設定されているかどうかを確認する必要があります。

ベストな場所をユーザーがログインしているか、いくつかのグローバルだろうかどうかをチェックするためにコンポーネント

関連する問題