【问题标题】:ionic Different hardware back button callback for different controllersionic 不同控制器的不同硬件后退按钮回调
【发布时间】:2016-06-13 13:04:15
【问题描述】:

我需要在不同的控制器中点击硬件后退按钮做不同的事情。我在每个控制器中使用了以下代码:

$ionicPlatform.onHardwareBackButton(function() {
   alert("click on hardware back button");
}

问题是在一个控制器中使用 registerBackButtonAction 时,它似乎会覆盖所有控制器中的相同操作。 我知道我可以把这个代码是 app.run() 并检查状态名称,但我需要在单击后退按钮时访问一些控制器特定的属性(和功能),所以放入 app.run 对我不起作用。

谁能帮我解决这个问题? 谢谢

【问题讨论】:

    标签: ionic-framework


    【解决方案1】:

    其实你可以在registerBackButton里面提到你的状态

    看这里

    $ionicPlatform.registerBackButtonAction(function(e) {
        //do your stuff
        if($state.current.name=="login") {
            console.log(e);
         e.preventDefault();
         alert('login');
         //navigator.app.exitApp();
        }
        else{
    
          $ionicHistory.goBack();
        }
    
        }, 101);
    

    您可以在控制器中使用上面的代码并提及它应该工作的状态,以便您可以在其他部分中执行您的操作,我让您继续执行此操作。

    更多详情你可以看看这个tutorial

    【讨论】:

    • 嗨@MohanGopi,感谢您的回答。但如果你看看我提到的问题,我知道我可以做你建议的事情。但问题是我需要在 registerBackButtonAction 中访问每个控制器的专用 $scope。如果我把它放在一个控制器中,我只能访问它的 $scope 而不能访问其他路由的 $scope。 tnx
    • 为此使用 $rootscope
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2021-12-02
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    相关资源
    最近更新 更多