angular - Ionic 2 - Odhlásiť kartu v bočnom menu
Ako môžem pridať kartu Odhlásiť sa do môjho bočného menu v Ionic 2? Ak ste prihlásený, nachádzate sa na stránke DashboardPage. Momentálne mám položku menu „Odhlásiť sa“, ktorá ma len presmeruje na HomePage. Tu je pole stránok v app.component.ts so všetkými položkami menu:
this.pages = [
{title: 'Dashboard', component: DashboardPage},
...
{title: 'Logout', component: HomePage}
];
Ale teraz potrebujem pridať logiku za odhlásením a nielen prepínať stránku. Je možné zavolať funkciu logout(), keď kliknem na kartu Odhlásiť sa, namiesto toho, aby som sa len presunul na Domovskú stránku?
UPRAVIŤ :
Tu je funkcia openPage:
openPage(page) {
this.nav.setRoot(page.component);
}
Odpoveď č. 1
Môžete nastaviť komponent ako null v možnosti odhlásenia
this.pages = [
{title: 'Dashboard', component: DashboardPage},
...
{title: 'Logout', component: null}
];
A potom vo vašej metóde:
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);
}
}
Odpoveď č. 2
Viem, že na to už bolo odpovedané, ale niekto by to mohol považovať za užitočné.
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;
}
}
