mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 01:52:19 +08:00
refactor(): add menu-controller, make updates to modal and nav controllers
This commit is contained in:
@ -9,6 +9,7 @@ export { AlertController, AlertProxy } from './providers/alert-controller';
|
||||
export { App } from './providers/app';
|
||||
export { Events } from './providers/events';
|
||||
export { LoadingController, LoadingProxy } from './providers/loading-controller';
|
||||
export { MenuController } from './providers/menu-controller';
|
||||
export { ModalController, ModalProxy } from './providers/modal-controller';
|
||||
export { NavController } from './providers/nav-controller';
|
||||
export { NavParams } from './providers/nav-params';
|
||||
|
@ -22,6 +22,7 @@ import { AngularComponentMounter } from './providers/angular-component-mounter';
|
||||
import { App } from './providers/app';
|
||||
import { Events } from './providers/events';
|
||||
import { LoadingController } from './providers/loading-controller';
|
||||
import { MenuController } from './providers/menu-controller';
|
||||
import { ModalController } from './providers/modal-controller';
|
||||
import { PopoverController } from './providers/popover-controller';
|
||||
import { ToastController } from './providers/toast-controller';
|
||||
@ -61,6 +62,7 @@ export class IonicAngularModule {
|
||||
App,
|
||||
Events,
|
||||
LoadingController,
|
||||
MenuController,
|
||||
ModalController,
|
||||
PopoverController,
|
||||
ToastController
|
||||
|
127
packages/angular/src/providers/menu-controller.ts
Normal file
127
packages/angular/src/providers/menu-controller.ts
Normal file
@ -0,0 +1,127 @@
|
||||
import { ensureElementInBody } from '../util/util';
|
||||
|
||||
let element: HTMLIonMenuControllerElement;
|
||||
export class MenuController {
|
||||
|
||||
|
||||
constructor() {
|
||||
element = ensureElementInBody('ion-menu-controller') as HTMLIonMenuControllerElement;
|
||||
}
|
||||
|
||||
close(menuId?: string) {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.close(menuId);
|
||||
});
|
||||
}
|
||||
|
||||
// maintain legacy sync api
|
||||
enable(enabled: boolean, menuId?: string) {
|
||||
if (element && element.enable) {
|
||||
return element.enable(enabled, menuId);
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return null;
|
||||
}
|
||||
|
||||
enableAsync(menuId?: string): Promise<HTMLIonMenuElement> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.enable(true, menuId);
|
||||
});
|
||||
}
|
||||
|
||||
get(menuId?: string) {
|
||||
if (element && element.get) {
|
||||
return element.get(menuId);
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return null;
|
||||
}
|
||||
|
||||
getAsync(menuId?: string): Promise<HTMLIonMenuElement> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.get(menuId);
|
||||
});
|
||||
}
|
||||
|
||||
getMenus() {
|
||||
if (element && element.getMenus) {
|
||||
return element.getMenus();
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return [];
|
||||
}
|
||||
|
||||
getMenusAsync(): Promise<HTMLIonMenuElement[]> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.getMenus();
|
||||
});
|
||||
}
|
||||
|
||||
getOpen() {
|
||||
if (element && element.getOpen) {
|
||||
return element.getOpen();
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return null;
|
||||
}
|
||||
|
||||
getOpenAsync(): Promise<HTMLIonMenuElement[]> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.getOpen();
|
||||
});
|
||||
}
|
||||
|
||||
isEnabled(menuId?: string) {
|
||||
if (element && element.isEnabled) {
|
||||
return element.isEnabled(menuId);
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return false;
|
||||
}
|
||||
|
||||
isEnabledAsync(menuId?: string): Promise<boolean> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.isEnabled(menuId);
|
||||
});
|
||||
}
|
||||
|
||||
isOpen(menuId?: string) {
|
||||
if (element && element.isOpen) {
|
||||
return element.isOpen(menuId);
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return false;
|
||||
}
|
||||
|
||||
isOpenAsync(menuId?: string): Promise<boolean>{
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.isOpen(menuId);
|
||||
});
|
||||
}
|
||||
|
||||
open(menuId?: string): Promise<boolean> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.open(menuId);
|
||||
});
|
||||
}
|
||||
|
||||
swipeEnable(shouldEnable: boolean, menuId?: string) {
|
||||
if (element && element.swipeEnable) {
|
||||
return element.swipeEnable(shouldEnable, menuId);
|
||||
}
|
||||
// IDK, this is not a good place to be in
|
||||
return null;
|
||||
}
|
||||
|
||||
swipeEnableAsync(shouldEnable: boolean, menuId?: string): Promise<HTMLIonMenuElement> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.swipeEnable(shouldEnable, menuId);
|
||||
});
|
||||
}
|
||||
|
||||
toggle(menuId?: string): Promise<boolean> {
|
||||
return (element as any).componentOnReady().then(() => {
|
||||
return element.toggle(menuId);
|
||||
});
|
||||
}
|
||||
}
|
@ -29,10 +29,10 @@ export class ModalController implements FrameworkDelegate {
|
||||
return getModalProxy(opts);
|
||||
}
|
||||
|
||||
dismiss(id?: number, data?: any, role?: string) {
|
||||
dismiss(data?: any, role?: string, id?: number) {
|
||||
const modalController = document.querySelector('ion-modal-controller');
|
||||
return (modalController as any).componentOnReady().then(() => {
|
||||
modalController.dismiss(data, role, id);
|
||||
return modalController.dismiss(data, role, id);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -99,4 +99,11 @@ export class NavController implements PublicNav {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
getChildNavs(): PublicNav[] {
|
||||
if (this.element.getChildNavs) {
|
||||
return this.element.getChildNavs();
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user