2014-11-25 49 views
0

在我離子的應用程序,我是我使用下面的代碼來實現設備後退按鈕綁定:離子事件偵聽器,火災是適用於一個控制器

var deregister = $ionicPlatform.onHardwareBackButton(
    function() { 
     toastr.warning("Back button pressed"); 
    }, 100 
); 
$scope.$on('$pause', deregister); 

函數執行時,我點擊後退按鈕,但它也會在其他所有屏幕上執行。我只希望它適用於我正在使用它的控制器。有什麼方法可以完成此任務嗎?先謝謝你。

編輯

,我想實現這一點的原因是,應用程序安裝後的第一時間,我的設備後退按鈕事件不一樣,如果我想退出應用程序觸發。將顯示Splash頁面,顯示登錄屏幕,然後顯示正確的憑據主屏幕。我清除登錄和家中的歷史記錄。在家中後退按鈕不起作用。當我添加後退按鈕事件偵聽器時,事件將應用於所有屏幕上,而不僅僅是我使用此代碼的控制器。這就是問題所在。

+0

您可以使用$ state來檢查當前頁面,然後有條件地執行函數體。 – 2014-11-26 04:10:56

回答

0
var deregister = $ionicPlatform.onHardwareBackButton(
    function() { 
     toastr.warning("Back button pressed"); 
     $scope.$$listeners.$pause=[]; 
    }, 100 
); 
$scope.$on('$pause', deregister); 

未經測試的代碼,我不知道它是否適合您的方案,但這樣它只能被執行一次,就可以在事件處理程序解除綁定的事件?

+0

謝謝您的答案,我已經更新了我的答案和我的場景。我正試圖實現這個目標,以擺脫我所遇到的另一個奇怪問題。 – Lunchbox 2014-11-25 11:30:59

相關問題