From 1bfe3932769d045365b37d60639ad2fb1d454da2 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Sun, 21 Jun 2015 21:05:15 -0500 Subject: [PATCH] overlay getByHandle --- ionic/components/modal/test/basic/index.js | 11 ++++++++++- ionic/components/overlay/overlay.js | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ionic/components/modal/test/basic/index.js b/ionic/components/modal/test/basic/index.js index de7c92afa5..3fa85695db 100644 --- a/ionic/components/modal/test/basic/index.js +++ b/ionic/components/modal/test/basic/index.js @@ -43,7 +43,8 @@ class IonicApp { openModal() { Modal.open(ContactModal, { enterAnimation: 'my-fade-in', - leaveAnimation: 'my-fade-out' + leaveAnimation: 'my-fade-out', + handle: 'my-awesome-modal' }); } } @@ -72,6 +73,9 @@ export class ContactModal extends Modal {

+

+ +

@@ -94,6 +98,11 @@ export class ModalFirstPage { modal.close(); } + closeByHandeModal() { + let modal = Modal.getByHandle('my-awesome-modal'); + modal.close(); + } + openActionMenu() { ActionMenu.open({ buttons: [ diff --git a/ionic/components/overlay/overlay.js b/ionic/components/overlay/overlay.js index d8a2d2bc7a..ab29b0b6f0 100644 --- a/ionic/components/overlay/overlay.js +++ b/ionic/components/overlay/overlay.js @@ -63,6 +63,7 @@ export class Overlay { IonicRoot.append(ComponentType).then(ref => { let overlay = ref.instance; overlay._type = overlayType; + overlay._handle = opts && opts.handle; overlay._dispose = ref.dispose; overlay._domElement = ref.elementRef.domElement; overlay.extendOptions(opts); @@ -78,7 +79,16 @@ export class Overlay { static getByType(overlayType) { for (let i = overlayStack.length - 1; i >= 0; i--) { - if (overlayType == overlayStack[i]._type) { + if (overlayType === overlayStack[i]._type) { + return overlayStack[i]; + } + } + return null; + } + + static getByHandle(handle) { + for (let i = overlayStack.length - 1; i >= 0; i--) { + if (handle === overlayStack[i]._handle) { return overlayStack[i]; } }