2017-01-13 4 views
0

イオン性のサイドメニューテンプレートに基づいてIonic2アプリを使用しています。私はブール値のプロパティ(ログインしているユーザー)に基づいてメニュー項目を表示/非表示したいと思います。私の問題は、メニュー内の項目がまったく更新されないということです。変更を適用するのは、アプリケーションを再起動したときだけです。メニュー含まれている私のapp.htmlのIonic2ビューの要素はコントローラーのプロパティで表示されない

パート:私が持っている

this.pages = [ 
     { title: '1', component: Page1, hidden: false }, 
     { title: '2', component: Page2, hidden: !this.registered }, 
     { title: '3', component: Page3, hidden: !this.registered }, 
     { title: '4', component: Page4, hidden: false }, 
     { title: '5', component: Page5, hidden: false }, 
     { title: '6', component: Page6, hidden: this.registered } 
    ]; 

<ion-list> 
    <ng-container *ngFor="let p of pages"> 
    <button menuClose ion-item (click)="openPage(p)" *ngIf="!p.hidden"> 
     {{p.title}} 
    </button> 
    </ng-container> 
</ion-list> 

ページは、それがテンプレートにもともとあったように配列され、私は隠されたプロパティを追加しましたPage6に登録画面が表示され、ユーザーが登録されていないときが表示されます。私は、ユーザーがアクティブなセッション(登録済み)を持っているときにのみ表示されなければならない2ページ(2,3)を持っています。これらは隠された財産に反映されます。

は、ログインまたは登録後、私はこのコントローラでキャッチuser.registeredイベントを発行し、それに応じて登録されたプロパティを設定します。私はここで何が欠けていますか?これらのメニューアイテムを表示または非表示にするにはどうすればよいですか?

+1

もう一度this.pages配列を作成するか、単にthis.registeredの値を変更しますか? –

+0

@aminarghavaniちょうどthis.registeredを変更しています。それはうまくいくはずですよね? – Perrier

+1

あなたの配列は更新されないと思います。 –

答えて

1

this.pages配列は更新されません。 this.pages配列を更新する必要があります。

関連する問題