我有一個奇怪的情況。我正在寫一個帶左滑動菜單的角度+離子應用程序,下面是我正在嘗試執行的操作:離子+安卓後退按鈕+旁邊菜單是打開檢測 - 無法可靠工作
1)捕獲Android後退按鈕 2)當您點擊後退按鈕時,如果菜單未打開,帶你到菜單(打開它) 3)如果菜單是打開的,你點擊後退按鈕,退出應用程序
要陷阱後退按鈕,我有這個代碼在app.run(也試圖搬遷到基地控制器和注入$控制器到其他控制器,沒有什麼區別)
我注意到,如果我實際點擊菜單的「菜單圖標」,「isOpen」可靠地打印真實/ false作爲我打開和關閉菜單
但是,當我點擊Android後退按鈕,它的作品第一次(打印真或假),但每一個後來的水龍頭不會改變isOpen狀態,而菜單實際上切換。
因此,這使我無法以編程方式檢測菜單是否在android後退按鈕處理程序中打開或關閉。
這讓我感到困惑,爲什麼這只是Android後臺處理程序中的一個問題,當我點擊菜單項時不是問題。它被稱爲在兩種情況下相同的代碼,這是
$ionicSideMenuDelegate.toggleLeft();
我的Android處理代碼:
$ionicPlatform.registerBackButtonAction(function (event) {
$ionicSideMenuDelegate.toggleLeft();
$ionicSideMenuDelegate.$getByHandle('sideMenu').toggleLeft();
$timeout (function() {
console.log ("Status of SIDE MENU IS : " + $ionicSideMenuDelegate.$getByHandle('sideMenu').isOpen());
},1000);
}, 100);
我還設置了一個codepen,但不知道如何可以在測試和android設備,因爲每次我嘗試點擊codepen或jsfiddle中的後退按鈕時,都會使瀏覽器返回頁面。
任何洞察發生了什麼?我曾在離子論壇上發過帖,但一直未能發現爲什麼(還) - >因此,希望SO社區能夠傳播給更多的觀衆。
我對延遲響應表示歉意。是的,這很好 - 只是測試它!非常感謝 – user1361529
很高興它的工作。乾杯。 – LeftyX
這個代碼只能在app.run中使用嗎?還是我可以在任何控制器中使用它? –