2017-10-10 7 views
0

角度の付いたブートストラップメニューを使用しています。私はいくつかのメニュー項目を表示し、表示プロパティを使用して非表示にしたいと思います。クラスhidden_​​itemはdisplay:noneと定義されています。ユーザーがログインすると、「メッセージ」メニュー項目が表示されますが、それをクリックすると受信トレイおよび送信済みリンクは表示されません。後でページを更新すると、すべてが正常に動作し、受信トレイと送信トレイが表示されます。ページをリフレッシュせずに動作させるにはどうすればよいですか?ブートストラップのドロップダウン - メニュー項目の表示プロパティの変更

   <li [ngClass]="isLoggedIn() ? 'dropdown' : 'hidden_item'"> 
        <a [routerLink]="['Mailbox', {'boxname': 'inbox'}]" class="dropdown-toggle">Messages <span class="nav-up-carret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a [routerLink]="['Mailbox', {'boxname': 'inbox'}]">Inbox</a> </li> 
         <li><a [routerLink]="['Mailbox', {'boxname': 'sent'}]">Sent</a></li> 
        </ul> 
       </li> 

答えて

0

あなたは* ngIfを使用し、それをこのように試すことができます:それはtrueを返す場合isLogedIn()リターンがfalseが、それを追加する場合

li *ngIf="isLogedIn()"> 
     <a [routerLink]="['Mailbox', {'boxname': 'inbox'}]" class="dropdown-toggle">Messages <span class="nav-up-carret"></span> 
     </a> 
      <ul class="dropdown-menu" role="menu"> 
        <li><a [routerLink]="['Mailbox', {'boxname': 'inbox'}]">Inbox</a> </li> 
        <li><a [routerLink]="['Mailbox', {'boxname': 'sent'}]">Sent</a></li> 
      </ul> 
</li> 

この方法では、角度を自動的DOMからブロックを削除します。

+0

はそれを試みたが、まだメッセージをクリックすると、受信トレイが表示されないと、これは正常に動作します – marcg

0

あなたの問題を正しく理解していれば、メッセージのアンカー要素にdata-toggle="dropdown"というプロパティがありません。

それは

<li [ngClass]="isLogedIn() ? 'dropdown' : 'hidden_item'"> 
        <a [routerLink]="['Mailbox', {'boxname': 'inbox'}]" class="dropdown-toggle" data-toggle="dropdown">Messages <span class="nav-up-carret"></span></a> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a [routerLink]="['Mailbox', {'boxname': 'inbox'}]">Inbox</a> </li> 
         <li><a [routerLink]="['Mailbox', {'boxname': 'sent'}]">Sent</a></li> 
        </ul> 
       </li> 
+1

送信する必要があります。ありがとう – marcg

+0

私は助けることができる嬉しい –

+0

私はページ、受信トレイを更新し、リンクが消えた場合、私は1つの問題に気づいた。私はブラウザを閉じて再びそれらのリンクを表示するにはログインする必要があります – marcg

関連する問題