イオン性のサイドメニューテンプレートに基づいて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
イベントを発行し、それに応じて登録されたプロパティを設定します。私はここで何が欠けていますか?これらのメニューアイテムを表示または非表示にするにはどうすればよいですか?
もう一度this.pages配列を作成するか、単にthis.registeredの値を変更しますか? –
@aminarghavaniちょうどthis.registeredを変更しています。それはうまくいくはずですよね? – Perrier
あなたの配列は更新されないと思います。 –