网站搜索

angular - Ionic 2 - 侧边菜单中的注销标签


我如何在我的 Ionic 2 侧边菜单中添加一个注销标签?如果你已经登录,你会在 DashboardPage。目前我有一个菜单项“注销”,它只是将我带到 HomePage。以下是 app.component.ts 中包含所有菜单项的 pages 数组:

this.pages = [
    {title: 'Dashboard', component: DashboardPage},
    ...
    {title: 'Logout', component: HomePage}
];

但现在我需要在注销背后添加逻辑,而不仅仅是页面切换。是否可以在点击注销选项卡时调用一个 logout() 函数,而不仅仅是跳转到主页?

编辑:

这是 openPage 函数:

openPage(page) {
    this.nav.setRoot(page.component);
}

答案#1

你可以在注销选项中将组件设置为 null

this.pages = [
    {title: 'Dashboard', component: DashboardPage},
    ...
    {title: 'Logout', component: null}
];

然后在你的方法中:

openPage(page) {
    if(page.component) {
        this.nav.setRoot(page.component);
    } else {
        // Since the component is null, this is the logout option
        // ...

        // logout logic
        // ...

        // redirect to home
        this.nav.setRoot(HomePage);
    }
}

答案#2

我知道这个问题已经有人回答过,但任何人都可能觉得这个有用。

    this.pages = [
        {title: 'Dashboard', component: DashboardPage},
        {title: 'Logout', component: HomePage},
        {title: 'Share', component: ''}
    ];

    openPage(page) {

        switch (true) {

          case ((page.title == 'Logout')): {
            console.log('Clicked Logout button');
            // this.logout(); // call logout logic method
          }
              break;

          case ((page.title == 'Share')): {
            console.log('Clicked Share button');
            // this.share(); call share logic method
          }
              break;

          default: {
            this.nav.setRoot(page.component);
          }
              break;
      }

    }