2016-12-12 4 views
3

Я работаю с ионным 2, и у меня есть ионное меню с левой стороны приложения, которое закрывается, когда я открываю меню и касаюсь области страницы.ionic2 keep side menu open

Я бы хотел, чтобы он продолжал открываться и закрывался только тогда, когда пользователь явно приказывает закрыть его (через кнопку закрытия или, возможно, отбросить назад, что угодно). есть ли какой-либо вариант или обходной путь для этого?

EDIT: Я начал работу с ionic2-starter-sidemenu. когда я запускаю его, он выглядит следующим образом:

--------------------------------------------------------------- 
|   | <menuToggle button>        | 
|   |-------------------------------------------------| 
|   |             | 
|   |             | 
|  /* |             | 
| side menu |             | 
| toggled by|             | 
| menuToggle|   /* Content of each Pages */   | 
| button |             | 
|  */ |             | 
|   |             | 
|   |             | 
|   |             | 
--------------------------------------------------------------- 

и когда я нажимаю область содержимой страницы, меню закрывается, как это:

--------------------------------------------------------------- 
| <menuToggle button>           | 
|-------------------------------------------------------------| 
|                | 
|                | 
|                | 
|                | 
|    /* Content of each Pages */     | 
|                | 
|                | 
|                | 
|                | 
|                | 
--------------------------------------------------------------- 

Я попробовал чтение документации и поиск ионного форума, но ничего не нашел для его разрешения.

+0

Добро пожаловать на SO, пожалуйста, покажите нам, что вы пытаетесь сделать, и то, что, как ожидается, с фрагментами кода. Только ответы не очень полезны для ответов. – Jeet

+0

Ознакомьтесь с документами для 'MenuController' https://ionicframework.com/docs/v2/api/components/menu/MenuController/ – Ivaro18

ответ

0

попробовать это, она хорошо работает для меня:

<ion-navbar > 
    <button ion-button menuToggle> 
    <ion-icon name="menu"></ion-icon> 
    </button> 
    <ion-title></ion-title> 
    <ion-buttons start> 
    <button ion-button (click)="func1()"> 
     <ion-icon name="add-circle"></ion-icon> 
    </button> 
    <button ion-button (click)="func2()"> 
     <ion-icon ios="ios-exit" md="md-exit"></ion-icon> 
    </button> 
    </ion-buttons> 
</ion-navbar> 
0

Чтобы остановить меню от закрытия вы можете удалить menuClose атрибут/директива в app.html (here's a link to it in the reference project source)

т.е. это menuClose бит:

<button menuClose ion-item *ngFor="let p of pages" (click)="openPage(p)"> 

Вот еще одна информация о директиве MenuClose и обратите внимание, что yo u также может программно закрыть меню.

Также, в зависимости от используемого вами menu type, вы можете найти, что reveal работает лучше, чем по умолчанию режим overlay.

0

Вот быстрый хак, пока они не выпустить обновление:

Первая: Удалить menuClose любой из текущих кнопок меню боковой

Затем в app.component.ts вызова в MenuController:

constructor(public menuCtrl: MenuController, public platform: Platform) {...

... 
initializeApp() { 
    this.platform.ready().then(() => { 
     this.menuCtrl.open(); 
    }); 
} 

Это делает 2 простых поведения, открывающие зарезервированных-когда делали в основном:

  • открывает меню, когда приложение загружается
  • предотвращает любые кнопки нав от закрытия меню
0

Надежда этот ответ ISN «Уже слишком поздно. Однако ионный 2 теперь поддерживает splitplane, который работает точно так, как вы описали.Его синтаксис:

<ion-split-pane> 
    <!-- our side menu --> 
    <ion-menu [content]="content"> 
    <ion-header> 
     <ion-toolbar> 
     <ion-title>Menu</ion-title> 
     </ion-toolbar> 
    </ion-header> 
    </ion-menu> 

    <!-- the main content --> 
    <ion-nav [root]="root" main #content></ion-nav> 
</ion-split-pane> 

enter image description here

+0

Не удалось заставить его работать с' 'маршрутизатором-выходом '' Angular. – alex351

+0

Вы используете ионную маршрутизацию 3/2 или угловую маршрутизацию 2/4 –

+0

, как я уже сказал. Ионный имеет «ион-навигатор», угловой имеет «роутер-выход». – alex351