ユーザーロールに基づいて変更される動的ヘッダーコンポーネントを実装しようとしています。ここでユーザーの種類に基づいた角度4の動的ヘッダー
は私のヘッダー・コンポーネント
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})
export class HeaderComponent implements OnInit {
currentUser:any;
constructor(
) {
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
}
ngOnInit() {
}
}
ですこれは私のヘッダーテンプレート
<nav class="navbar navbar-default" >
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav navbar-right">
<li class="menu_item" *ngIf="!currentUser"><a [routerLink]="['/login']"> Login </a></li>
<li class="menu_item" *ngIf="currentUser"><a [routerLink]="['/signin']">Logout</a></li>
</ul>
</div>
</nav>
である。しかし、ログインした後に問題が
- あり、そのヘッダーテキストは(ない変更されていません ログイン→ログアウト)
- ログアウト後、そのヘッダーテキストは変更されません( ログアウト - >ログイン)
- ただし、ページを更新するとヘッダーテキストが変更されます。しかし、ルート変更で自動的に変更されない
誰でも私にこれを助けることができますか?
は何それはあなたがこれを設定し、ユーザーオブジェクト –
ように見えるん。 localStorageの値をcurrentUserに1回だけ追加します。おそらくユーザーがログイン/ログアウトしたときに、ストレージ内の値を変更しても、コンポーネントはこの値を再び '読み込み'ません。このサービスまたは共有サービスにEventEmitterを使用できます。 –
共有サービスを使用して実装する方法を教えてください –