2016-05-13 34 views
10

Tôi đang sử dụng cordova-google-maps plugin với ứng dụng ionic 2 của mình và tôi muốn hiển thị menu (sidenav) trên trang đó. Vấn đề là để sidenav nhận được sự kiện đúng cách, tôi cần gọi map.setClickable(false) trong khi mở sidenav và đặt lại thành true khi người dùng đóng sidenav. Dường như có sự kiện để kiểm tra trong khi menu đang được mở với opening, nhưng tôi không biết cách theo dõi khi người dùng đóng menu.cách phát hiện menu bên mở/đóng trong ionic 2?

Trả lời

2

Có vẻ như các sự kiện mới đã được thêm vào thành phần menu để giải quyết vấn đề này. Tôi cũng đang sử dụng plugin bản đồ google và nó hoạt động tốt http://ionicframework.com/docs/v2/api/components/menu/Menu/

ionDrag

Khi menu đang được kéo mở.

ionOpen

Khi menu đã được mở.

ionClose

Khi menu đã bị đóng cửa.

Sử dụng những sự kiện đầu ra, trong xử lý của bạn, bạn có thể giữ một lá cờ cho menu nếu nó mở hay không :)

+0

Tôi có vấn đề tương tự và tôi thấy những sự kiện tương tự trong doc nhưng tôi không tìm cách đăng ký với họ. Bạn có thể cho tôi xem ? – manu

27

Để sử dụng ionDrag, ionOpen, ionClose trong Ionic2 bạn phải thêm nó vào menu tự

ví dụ thay đổi thực đơn trong tập tin của bạn bằng cách app.html

<ion-menu [content]="content" (ionOpen)="menuOpened()" (ionClose)="menuClosed()"> 

Sau khi tôi sử dụng "Sự kiện" thấy doc ở đây: http://ionicframework.com/docs/v2/api/util/Events/

đối với phát hiện trong trang của tôi nếu menu được đóng hoặc mở.

Ví dụ trong app.ts tôi

menuClosed() { 
    this.events.publish('menu:closed', ''); 
} 

menuOpened() { 
    this.events.publish('menu:opened', ''); 
} 

Và trong trang khác của tôi

events.subscribe('menu:opened',() => { 
    // your action here 
}); 

events.subscribe('menu:closed',() => { 
    // your action here 
}); 

Tôi hy vọng điều này giúp đỡ

+0

Xin chào, tôi có một vấn đề với menuĐóng cửa trong Ionic3 –

Các vấn đề liên quan