Ionic2视图元素由控制器属性隐藏

时间:2017-01-13 13:06:15

标签: angularjs ionic-framework

我有一个基于离子侧面模板的Ionic2应用程序。我想基于布尔属性(用户登录)显示/隐藏菜单项。我的问题是菜单中的项目根本不刷新,更改只有在我重新启动应用程序时才会生效。

包含菜单的app.html的一部分:

<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>

pages是最初在模板中的数组,我刚刚添加了一个隐藏属性:

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 }
    ];

我在第6页上有一个注册屏幕,以便在用户未注册时显示。我还有2页(2,3),只有在用户有活动会话(已注册)时才能显示。这些反映了隐藏的财产。

登录或注册后,我发布了一个user.registered事件,我在此控制器中捕获并相应地设置注册属性。我在这里错过了什么?如何显示或隐藏这些菜单项?

1 个答案:

答案 0 :(得分:1)

this.pages数组不更新。 您需要更新this.pages数组。