0
votes

On Ionic2 and Angular2, how do i disable the sidemenu on the login page. This is the html code for the app.html page which loads the side menu on every page

<ion-toolbar>
    <ion-title>Pages</ion-title>
</ion-toolbar>

<ion-content>
    <ion-list>
    <button menuClose ion-item *ngFor="#p of pages" (click)="openPage(p)">
        {{p.title}}
    </button>
    </ion-list>
</ion-content>

</ion-menu>

<ion-nav id="nav" [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
2
@Will.Harris nope it's not about swiping, but there are other topics talking about enabling/disabling the menu on login page - Guillaume

2 Answers

2
votes

Try making your Login page an ionic modal if it isn't already. Make a separate file for your Login, something like this.

@Page({
template: `
<ion-navbar *navbar>
<ion-title>Login</ion-title>
</ion-navbar>
<ion-content>
  //your login template here
</ion-content>
` 
})
export class LoginPage implements OnInit{

constructor(
 ){}

And in your app.ts put

private showLogon() {
  let modal = Modal.create(LoginPage);
  this.nav.present(modal);
 }

With "LoginPage" being the name of the class the login template belongs to. That way you can choose if you want to include a sidemenu.

0
votes

You can disable side menu by injecting MenuController and then use:

this.menu.enable(false, 'id-of-menu'); to disable, or

this.menu.enable(true, 'id-of-menu'); to enable menu.

Example:

import {Page, NavController, MenuController} from 'ionic-angular';

@Page({
  templateUrl: 'build/pages/browse/tabs.html'
})

export class BrowsePage {
  static get parameters() {
    return [[NavController], [MenuController]];
  }

  constructor(nav, menu) {
    this.nav          = nav;
    this.menu         = menu;

    // disable menu
    this.menu.enable(false, 'id-of-menu');
  }

}