mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
test(menu): add test that reproduces issue with multiple menus and navbar toggles
This commit is contained in:
51
ionic/components/menu/test/enable-disable/index.ts
Normal file
51
ionic/components/menu/test/enable-disable/index.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import {App, Page, IonicApp, MenuController} from '../../../../../ionic/ionic';
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'page1.html'
|
||||
})
|
||||
class Page1 {
|
||||
}
|
||||
|
||||
@Page({
|
||||
templateUrl: 'page2.html'
|
||||
})
|
||||
class Page2 {
|
||||
}
|
||||
|
||||
|
||||
@App({
|
||||
templateUrl: 'main.html'
|
||||
})
|
||||
class E2EApp {
|
||||
rootPage;
|
||||
activeMenu: string;
|
||||
|
||||
constructor(app: IonicApp, menu: MenuController) {
|
||||
this.app = app;
|
||||
this.menu = menu;
|
||||
|
||||
this.page1 = Page1;
|
||||
this.page2 = Page2;
|
||||
|
||||
this.rootPage = Page1;
|
||||
this.menu1Active();
|
||||
}
|
||||
|
||||
openPage(p) {
|
||||
// Get the <ion-nav> by id
|
||||
let nav = this.app.getComponent('nav');
|
||||
nav.setRoot(p);
|
||||
}
|
||||
|
||||
menu1Active() {
|
||||
this.activeMenu = 'menu1';
|
||||
this.menu.enable(true, 'menu1');
|
||||
this.menu.enable(false, 'menu2');
|
||||
}
|
||||
menu2Active() {
|
||||
this.activeMenu = 'menu2';
|
||||
this.menu.enable(false, 'menu1');
|
||||
this.menu.enable(true, 'menu2');
|
||||
}
|
||||
}
|
52
ionic/components/menu/test/enable-disable/main.html
Normal file
52
ionic/components/menu/test/enable-disable/main.html
Normal file
@ -0,0 +1,52 @@
|
||||
|
||||
<ion-menu [content]="content" id="menu1">
|
||||
|
||||
<ion-toolbar secondary>
|
||||
<ion-title>Menu 1</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<button ion-item menuClose (click)="menu1Active()">Make Menu 1 Active</button>
|
||||
<button ion-item menuClose (click)="menu2Active()">Make Menu 2 Active</button>
|
||||
<button ion-item menuClose (click)="openPage(page1)">
|
||||
Page 1
|
||||
</button>
|
||||
<button ion-item menuClose (click)="openPage(page2)">
|
||||
Page 2
|
||||
</button>
|
||||
<button ion-item menuClose detail-none>
|
||||
Close Menu 1
|
||||
</button>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
</ion-menu>
|
||||
|
||||
|
||||
<ion-menu [content]="content" id="menu2">
|
||||
|
||||
<ion-toolbar danger>
|
||||
<ion-title>Menu 2</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<button ion-item menuClose (click)="menu1Active()">Make Menu 1 Active</button>
|
||||
<button ion-item menuClose (click)="menu2Active()">Make Menu 2 Active</button>
|
||||
<button ion-item menuClose (click)="openPage(page1)">
|
||||
Page 1
|
||||
</button>
|
||||
<button ion-item menuClose (click)="openPage(page2)">
|
||||
Page 2
|
||||
</button>
|
||||
<button ion-item menuClose detail-none>
|
||||
Close Menu 2
|
||||
</button>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
</ion-menu>
|
||||
|
||||
|
||||
<ion-nav id="nav" [root]="rootPage" #content swipe-back-enabled="false"></ion-nav>
|
23
ionic/components/menu/test/enable-disable/page1.html
Normal file
23
ionic/components/menu/test/enable-disable/page1.html
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
<ion-navbar *navbar>
|
||||
<button [menuToggle]="activeMenu">
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-title>
|
||||
Multiple Menus
|
||||
</ion-title>
|
||||
</ion-navbar>
|
||||
|
||||
|
||||
<ion-content padding>
|
||||
<h3> Page 1 </h3>
|
||||
|
||||
<h4>Active Menu: {{ activeMenu }}</h4>
|
||||
|
||||
<p>
|
||||
<button [menuToggle]="activeMenu">Toggle Menu</button>
|
||||
</p>
|
||||
|
||||
<p>This page has two left menus, but only one is active at a time.</p>
|
||||
|
||||
</ion-content>
|
23
ionic/components/menu/test/enable-disable/page2.html
Normal file
23
ionic/components/menu/test/enable-disable/page2.html
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
<ion-navbar *navbar>
|
||||
<button [menuToggle]="activeMenu">
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-title>
|
||||
Multiple Menus
|
||||
</ion-title>
|
||||
</ion-navbar>
|
||||
|
||||
|
||||
<ion-content padding>
|
||||
<h3> Page 2 </h3>
|
||||
|
||||
<h4>Active Menu: {{ activeMenu }}</h4>
|
||||
|
||||
<p>
|
||||
<button [menuToggle]="activeMenu">Toggle Menu</button>
|
||||
</p>
|
||||
|
||||
<p>This page has two left menus, but only one is active at a time.</p>
|
||||
|
||||
</ion-content>
|
Reference in New Issue
Block a user